`card_info` mediumtext COMMENT '卡片信息'
最近项目中遇到一个场景,就是对上面字段'card_info'卡片信息里的内容查询,判断卡片信息里面是否包含某一个字符串,这里可以用like来实现。
select * from table_name where card_info like '小米'
这条语句就可以查出card_info字段中包含’小米‘字符串的所有结果。
但是如果card_info不是一个String格式,而是json的text文本格式,比如:
{
"name":"小米米",
"effectQuery":[
{
"queryId":1234590,
"query":"小米手机怎么样",
"status":0,
"modifier":""
},
{
"queryId":2550,
"query":"雷军的小米管理术",
"status":0,
"modifier":""
},
{
"queryId":2566,
"query":"雷军谈小米管理理念",
"status":0,
"modifier":""
}
]
}
如果我们想查询card_info中的name字段是否包含’内容‘,sql语句可以这样写:
select * from table_name where card_info->>'$.name' like "%小米%"
如果想查询card_info中effectQuery里query是否包含,可以使用如下sql语句实现:
select * from table_name where card_info->'$.effectQuery[*].query' like "%内容%"
本文介绍如何使用SQL查询JSON格式的数据库字段,包括直接查询JSON字符串和解析JSON对象进行查询的方法,适用于复杂数据结构的搜索需求。
1万+

被折叠的 条评论
为什么被折叠?



