作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有描述字段。该字段为json
描述字段的内容如下:
{
"address":
{
"street": "street 123",
"information":
{
"province": "province 123",
"regency": "regency 123",
"district": "district 123"
}
},
"mobileNumber": "123"
}
我想在json数据中搜索省份
我尝试这样:
SELECT * FROM orders WHERE LOWER(JSON_EXTRACT(description, "$.address.information.province")) LIKE "%prov%"
结果为空
如何解决这个问题?
最佳答案
问题是您的 JSON 无效。
后面不能有逗号"district": "district 123",
和
"mobileNumber": "123",
如果您尝试使用有效的 JSON,您将得到预期的结果:
select json_extract('{ "address": { "street": "street 123", "information": { "province": "province 123", "regency": "regency 123", "district": "district 123" } }, "mobileNumber": "123"}', '$.address.information.province')
"province 123"
我创建了一个db-fiddle这似乎适合您的数据:
create table x (id int, description json);
insert into x values(1, '{ "address": { "street": "street 123", "information": { "province": "province 123", "regency": "regency 123", "district": "district 123" } }, "mobileNumber": "123"}');
select * from x where json_extract(description, '$.address.information.province') like '%prov%'
输出
id description
1 {"address": {"street": "street 123", "information": {"regency": "regency 123", "district": "district 123", "province": "province 123"}}, "mobileNumber": "123"}
关于mysql - 如何在mysql中搜索json数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49715125/
我是一名优秀的程序员,十分优秀!