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

MySQL esegue la ricerca nelle celle con valori separati da virgole

Questo è un segno di cattiva progettazione del DB che dovresti prima esaminare Normalizzazione del database e se puoi cambiare la struttura, prima normalizzala usando una tabella di giunzione, A partire da ora puoi usare FIND_IN_SET() per trovare l'ID del record corrispondente nella colonna ID separati da virgole

SELECT * FROM table 
WHERE  FIND_IN_SET('id1',column) > 0
AND FIND_IN_SET('id2',column) > 0
AND FIND_IN_SET('id3',column) > 0

Cambia l'operatore secondo il tuo desiderio ho mostrato un esempio con l'operatore AND, nota che devi usare FIND_IN_SET tante volte quanto il numero di ID che hai nel tuo array che devi confrontare con la tua colonna