背景
有个update_rules
字段是json类型
{"type": "once", "values": []}
想用JSON_CONTAINS提取中间的once内容,发现下面这个sql一直报错:
SELECT * FROM `usergroup` WHERE JSON_CONTAINS(update_rules , 'once' , '$.type' )
报错一直是Invalid JSON text in argument 2
, 看了很久也没有看出第二个参数哪里错了
mysql官网例子 , 我看官网也是这样
解决方式
搜索了一下stackoverflow,原来字符串还要在里面加双引号
也就是'once'
改成'"once"'
完整的sql变成如下:
SELECT * FROM `usergroup` WHERE JSON_CONTAINS(update_rules , '"daily"' , '$.type' )