sql >> Base de Datos >  >> RDS >> Mysql

Consulta MySQL:haga coincidir el valor separado por comas con la columna que contiene una cadena separada por comas

Se puede hacer con expresiones regulares como dijo @ 1000111, pero con expresiones regulares más complicadas. Mira esto, por ejemplo:

(^|,)(13|15)(,|$)

Esto no coincidirá con 13 de 135, o 1 de 13 y así sucesivamente. Por ejemplo, para el número 13, esto coincidirá con las siguientes cadenas:

1,13,2
13,1,2
1,13
13,2
13

Pero no coincidirá con estos

1,135,2
131,2
1,113

Y esta es la consulta:

SET @search = '13,15';

SELECT *
FROM test
WHERE interests REGEXP CONCAT('(^|,)(', REPLACE(@search, ',', '|'), ')(,|$)')