Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Consulta MySQL:Combine o valor separado por vírgula com a coluna contendo a string separada por vírgula


Isso pode ser feito com regexp como @ 1000111 disse, mas com regexp mais complicado. Veja isso, por exemplo:
(^|,)(13|15)(,|$)

Isso não corresponderá a 13 de 135, ou 1 de 13 e assim por diante. Por exemplo, para o número 13, isso corresponderá às próximas strings:
1,13,2
13,1,2
1,13
13,2
13

Mas não vai corresponder a estes
1,135,2
131,2
1,113

E esta é a consulta:
SET @search = '13,15';

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