Mysql
 sql >> Base de données >  >> RDS >> Mysql

Requête MySQL :faire correspondre la valeur séparée par des virgules avec la colonne contenant une chaîne séparée par des virgules

Cela peut être fait avec regexp comme @1000111 l'a dit, mais avec des regexp plus compliquées. Regardez ceci, par exemple :

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

Cela ne correspondra pas à 13 sur 135, ou 1 sur 13 et ainsi de suite. Par exemple, pour le numéro 13, cela correspondra aux chaînes suivantes :

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

Mais ne correspondra pas à ceux-ci

1,135,2
131,2
1,113

Et voici la requête :

SET @search = '13,15';

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