【发布时间】:2019-01-24 03:13:13
【问题描述】:
在 MySQL 中,我使用 PHP 的 json_encode 将数据存储在“jsonValues”字段中:
{"product_category":[[{"category":["28"]},{"product":["16","22","64"]}]]}
通过PHP,我想通过编写以下查询来获取数据:
SELECT * FROM `dbTable`
WHERE JSON_CONTAINS(jsonValues, '"category":["28"]');
但是,它显示错误:
3141 - 函数 json_contains 的参数 2 中的 JSON 文本无效:“文档根不得跟随其他值。”在位置 10。
【问题讨论】:
-
为什么要将 JSON 存储在数据库中?您不能将它们存储在适当的数据库模式中吗?
JSON_CONTAINS可能不是您想要的,您可能正在搜索JSON_EXTRACT。使用方法见stackoverflow.com/a/39163928/3223157。 -
@Xatenev 我不能,因为我需要存储的信息无法存储到正确的数据库模式中,因为它们并不相同。
-
查看我的第一条评论的编辑。
-
试试这样的
SELECT * FROM 'dbTable' WHERE JSON_CONTAINS(jsonValues, '$.category');参考:[dev.mysql.com/doc/refman/5.7/en/… -
我已经尝试过了,但什么也没返回。
SELECT * FROMdbTable` WHERE JSON_CONTAINS(jsonValues, '["28"]', '$.shipping_location');`
标签: php mysql json mysql-json