mysql - 如何在 MySQL 中搜索 JSON 数据?

我已在 mysql DB 中插入记录,使用 json 编码 数据类型,现在我必须在 json 编码 数据中进行搜索,但我无法正确获取使用以下 MySql 查询的数据。

SELECT  `id` ,  `attribs_json` 
FROM  `products` 
WHERE  `attribs_json` REGEXP  '"1":{"value":[^"3"$]'

查询结果键等于“1”,值是除“3”以外的任何值

我的数据是:

{"feature":{"1":{"value":"["2","3"]"},
            "2":{"value":["1"]},
            "5":{"value":""},
            "3":{"value":["1"]},
            "9":{"value":""},
            "4":{"value":"\u0633\u0627\u062a\u0646"},
            "6":{"value":""},
            "7":{"value":""},
            "8":{"value":""}
           },
"show_counter":"0",
"show_counter_discount":""
}}

最佳答案

如果你有 MySQL 版本 >= 5.7,那么你可以试试这个:

SELECT JSON_EXTRACT(name, "$.id") AS name
FROM table
WHERE JSON_EXTRACT(name, "$.id") > 3

输出:

+-------------------------------+
| name                          | 
+-------------------------------+
| {"id": "4", "name": "Betty"}  | 
+-------------------------------+


详情请查看 MySQL 引用手册:
https://dev.mysql.com/doc/refman/5.7/en/json-search-functions.html

https://stackoverflow.com/questions/30411210/

相关文章:

python - 在 Python 中处理惰性 JSON - 'Expecting property

python - Flask jsonify 对象列表

ruby - 在尝试解析之前检查字符串是否是有效的 json?

json - 如何与 Telegram API 交互

json - 在 Go : required field? 中解码 json

json - 为 Sinatra 设置默认 content_type

perl - 我应该使用 YAML 还是 JSON 来存储我的 Perl 数据?

python - 如何计算 JSON 数据中的项目

javascript - jQuery AJAX 轮询 JSON 响应,基于 AJAX 结果或 JS

java - 无法将 java.util.ArrayList 的实例反序列化出 VALUE_STRI