问题
删除某表涉及到指定任务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
)