调用MySQL JSON函数,传入表示数字属性的路径
我有一个JSON块,其中属性是一个数字。例如调用MySQL JSON函数,传入表示数字属性的路径,mysql,json,Mysql,Json,我有一个JSON块,其中属性是一个数字。例如{“123”:“1”}。但我似乎无法让它与MySQL的JSON_CONTAINS函数配合使用。我还尝试了JSON_CONTAINS_PATH函数,得到了相同的结果 以下工作: SELECT JSON_CONTAINS('{"a": 1}', '1', '$.a'); 但是下面给了我一个错误: SELECT JSON_CONTAINS('{"123": 1}', '1', '$.123'); 查询错误:错误:ER\u无效的JSON\u路径:无效的JS
{“123”:“1”}
。但我似乎无法让它与MySQL的JSON_CONTAINS函数配合使用。我还尝试了JSON_CONTAINS_PATH函数,得到了相同的结果
以下工作:
SELECT JSON_CONTAINS('{"a": 1}', '1', '$.a');
但是下面给了我一个错误:
SELECT JSON_CONTAINS('{"123": 1}', '1', '$.123');
查询错误:错误:ER\u无效的JSON\u路径:无效的JSON路径表达式。错误在字符位置5附近
我已经阅读了文档:,但提供的示例仅使用字符串作为属性
一定有办法做到这一点。我使用的是MySQL 8.0.11您可以使用以下双引号作为密钥名:
SELECT JSON_CONTAINS('{"123": 1}', '1', '$."123"');
对于MySQL JSON函数中使用的路径,作用域始终是正在搜索或以其他方式操作的文档,由前导$字符表示。路径分支由句点字符(.)分隔。数组中的单元格由[N]
表示,其中N
是非负整数。键的名称必须是双引号字符串或有效的ECMAScript标识符(请参阅)
来源:
后跟键名的句点使用给定键命名对象中的成员。如果不带引号的名称在路径表达式中不合法(例如,如果包含空格),则必须在双引号内指定键名 来源:
谢谢,成功了。我知道这很简单。我希望MySQL文档至少有一个这样的例子。会为我节省一些时间;)