sql模糊查询判断字符串包含一些字符串

 `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 "%内容%"

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值