rez*_*eza 54 mysql json mysql-json
我正在将数据插入数据库中json_encoded
.现在我想搜索"功能",但我不能.
MySQL查询:
SELECT `id` , `attribs_json`
FROM `products`
WHERE `attribs_json` REGEXP '"1":{"value":[^"3"$]'
Run Code Online (Sandbox Code Playgroud)
这个查询显示了所有带有键"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":""
}}
Run Code Online (Sandbox Code Playgroud)
Zee*_*oft 93
如果你有MySQL版本> = 5.7,那么你可以试试这个:
SELECT JSON_EXTRACT(name, "$.id") AS name
FROM table
WHERE JSON_EXTRACT(name, "$.id") > 3
Run Code Online (Sandbox Code Playgroud)
输出:
+-------------------------------+
| name |
+-------------------------------+
| {"id": "4", "name": "Betty"} |
+-------------------------------+
Run Code Online (Sandbox Code Playgroud)
请查看MySQL参考手册以获取更多详细信息:https:
//dev.mysql.com/doc/refman/5.7/en/json-search-functions.html
Ban*_*dre 14
如果 MySQL 版本 < 5.7
SELECT fields
FROM table
WHERE field_json LIKE '%"key":"70"%';
Run Code Online (Sandbox Code Playgroud)
// 70 = 值
Vis*_*h G 13
如果您使用MySQL最新版本可能有助于达到您的要求.
select * from products where attribs_json->"$.feature.value[*]" in (1,3)
Run Code Online (Sandbox Code Playgroud)
Nak*_*lda 12
在数据库中存储JSON违反了第一个普通表单.
您可以做的最好的事情是在另一个表中规范化和存储功能.然后,您将能够使用连接更好看和执行查询.你的JSON甚至类似于表格.
Mysql 5.7内置了JSON功能:http:
//mysqlserverteam.com/mysql-5-7-lab-release-json-functions-part-2-querying-json-data/
正确的模式是:
WHERE `attribs_json` REGEXP '"1":{"value":[^}]*"3"[^}]*}'
Run Code Online (Sandbox Code Playgroud)
[^}]
将匹配任何字符除外 }
小智 10
对于Mysql8->
询问:
SELECT properties, properties->"$.price" FROM book where isbn='978-9730228236' and JSON_EXTRACT(properties, "$.price") > 400;
Run Code Online (Sandbox Code Playgroud)
数据:
mysql> select * from book\G;
*************************** 1. row ***************************
id: 1
isbn: 978-9730228236
properties: {"price": 44.99, "title": "High-Performance Java Persistence", "author": "Vlad Mihalcea", "publisher": "Amazon"}
1 row in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)
小智 9
我用这个查询
SELECT id FROM table_name WHERE field_name REGEXP '"key_name":"([^"])key_word([^"])"';
or
SELECT id FROM table_name WHERE field_name RLIKE '"key_name":"[[:<:]]key_word[[:>:]]"';
Run Code Online (Sandbox Code Playgroud)
第一个查询我用它来搜索部分值.第二个查询我用它来搜索确切的单词.
小智 8
请这样做。
SELECT * FROM `products`
WHERE JSON_UNQUOTE(JSON_EXTRACT(`attribs_json`, '$.value')) LIKE '%X%'
Run Code Online (Sandbox Code Playgroud)
小智 6
SELECT
country.NAME AS 'country_name',
city.NAME AS 'city_name',
city.district,
city.info,
JSON_EXTRACT( city.info, "$.Population" ) AS 'formated_population'
FROM
city
INNER JOIN country ON city.CountryCode = country.
CODE INNER JOIN countrylanguage ON country.CODE = countrylanguage.CountryCode
GROUP BY
city.NAME,
city.district,
country.NAME;
ORDER BY
country.NAME ASC;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
94698 次 |
最近记录: |