sql >> Databasteknik >  >> RDS >> Mysql

MySQL-fråga :Matcha kommaseparerat värde med kolumn som innehåller kommaseparerad sträng

Det kan göras med regexp som @1000111 sa, men med mer komplicerat regexp. Titta på det här, till exempel:

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

Detta kommer inte att matcha 13 från 135, eller 1 från 13 och så vidare. Till exempel, för nummer 13 kommer detta att matcha nästa sträng:

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

Men matchar inte dessa

1,135,2
131,2
1,113

Och det här är frågan:

SET @search = '13,15';

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


  1. Hur hämtar man datumet för mms från content://mms.

  2. Är det möjligt att snabba upp en sum() i MySQL?

  3. Infoga ny rad med data beräknad från andra rader

  4. Hur konverterar man tid i sekunder till HH:MM:SS-format i MySQL?