【发布时间】:2015-08-05 07:59:39
【问题描述】:
我已经在 mysql DB 中插入了 json encoded 数据类型的记录,现在我必须在 json encoded 数据中进行搜索,但我无法使用以下 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":""
}}
【问题讨论】:
-
我想向我展示所有记录,键是“1”,“3”是值之一
-
解释“不能”!你得到什么输出?
-
我想显示特征 id 为 1 且特征值之一为 3 的所有产品特征是这样的数组:feature = array( 1=>array(1,2,3),2= >array(1,4,7) ) 我正在使用 jsonencode 将其保存到数据库中
-
这听起来是个糟糕的主意。将要过滤的数据拆分为它们自己的列,然后仅使用 JSON 内容获取您不会过滤的其他信息,您会受益。
-
为什么想法很糟糕。这样做有什么缺点?
标签: mysql json mysql-json