mysql реализует in и нечеткое сопоставление и достигает эффекта in (например, xxx)

вопрос

Удаление данных, связанных с указанным идентификатором задачи в определенной таблице, не имеет непосредственно связанных полей. В поле тела определенной таблицы хранится только строка 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
)

Guess you like

Origin blog.csdn.net/ZHAI_KE/article/details/131899428