mysql实现in且模糊匹配、实现 in( like xxx ) 效果
删除某表涉及到指定任务id的数据,没有直接关联字段,只有在某表的body字段中存储有含任务id的json串,所以需要批量模糊匹配。
·
问题
删除某表涉及到指定任务id的数据,没有直接关联字段,只有在某表的body字段中存储有含任务id的json串,所以需要批量模糊匹配
用到的函数
- REGEXP
可以实现模糊匹配多个值
select * from xxx where body like '%"taskId":1%' or name like '%"taskId":2%'
-- 等价于
select * from xxx where body regexp '"taskId":1|"taskId":2'
- GROUP_CONCAT
实现多行值合并为一行
实现方式
SELECT * FROM xxx WHERE body REGEXP (
SELECT GROUP_CONCAT(CONCAT('"taskId":',task_id) SEPARATOR '|') FROM task
)

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
所有评论(0)