mysql实现in且模糊匹配、实现 in( like xxx ) 效果

问题

删除某表涉及到指定任务id的数据,没有直接关联字段,只有在某表的body字段中存储有含任务id的json串,所以需要批量模糊匹配

用到的函数

  1. REGEXP
    可以实现模糊匹配多个值
select * from xxx where body like '%"taskId":1%' or name like '%"taskId":2%'
-- 等价于
select * from xxx where body regexp '"taskId":1|"taskId":2'
  1. GROUP_CONCAT
    实现多行值合并为一行

实现方式

SELECT * FROM xxx WHERE body REGEXP (
	SELECT GROUP_CONCAT(CONCAT('"taskId":',task_id) SEPARATOR '|') FROM task
)

你可能感兴趣的:(mysql,android,数据库)