【发布时间】:2018-05-24 21:59:09
【问题描述】:
我正在使用 json_search 从列中搜索 json 格式的数据。对于普通的 json 数据,它工作正常。但如果字符串有双引号,它就不起作用。
MySQL 查询
SELECT JSON_SEARCH(user_information, 'one', '%name%', null, '$[*].label');
常规 json 数据可以正常工作,但不能用于存储在单列数据库中的以下数据。
查询不起作用的数据示例:
[{
"name":"John Smith",
"value":"John",
"label":"Sm"ith"
}]
这是此示例的db-fiddle。
正如您在数据中看到的,对于标签键,字符串是sm"ith,我刚刚在字符串中间添加了一个双引号,然后它在 db-fiddle 上显示以下错误。
函数 json_search 的参数 1 中的 JSON 文本无效:“缺少一个 对象成员后的逗号或 '}'。"
但在我的本地主机上显示以下错误。
2014 - 命令不同步;你现在不能运行这个命令
【问题讨论】:
-
我无法重现该问题,请参阅db-fiddle。
-
@wchiquito 我已经重现了这个问题,不是因为特殊字符,而是由于在字符串中添加了双引号。我已经更新了这个问题。我也创建了 db-fiddle,这里是链接db-fiddle.com/f/8T39N3B4R8jZgn3vyG6cCQ/0