Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL-Abfrage:Gleichen Sie den kommagetrennten Wert mit der Spalte ab, die eine kommagetrennte Zeichenfolge enthält

Es kann mit Regexp wie @ 1000111 gesagt werden, aber mit komplizierterem Regexp. Sehen Sie sich zum Beispiel Folgendes an:

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

Dies entspricht nicht 13 von 135 oder 1 von 13 und so weiter. Für Nummer 13 entspricht dies beispielsweise den nächsten Zeichenfolgen:

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

Passt aber nicht zu diesen

1,135,2
131,2
1,113

Und das ist Abfrage:

SET @search = '13,15';

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