sql >> Database teknologi >  >> RDS >> Mysql

MySQL-forespørgsel:Match kommasepareret værdi med kolonne, der indeholder kommasepareret streng

Det kan gøres med regexp som @1000111 sagde, men med mere kompliceret regexp. Se for eksempel på dette:

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

Dette vil ikke matche 13 fra 135, eller 1 fra 13 og så videre. For eksempel vil dette for nummer 13 matche næste strenge:

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

Men vil ikke matche disse

1,135,2
131,2
1,113

Og dette er forespørgsel:

SET @search = '13,15';

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


  1. Sammenkæd værdier baseret på ID

  2. Installation af WordPress 5 på ZEIT nu med MySQL Hosting

  3. Tips til lagring af PostgreSQL-sikkerhedskopier på Amazon AWS

  4. Er det begrebsmæssigt rigtigt at lave et SELECT MAX(id) osv. for at finde den sidst indsatte række?