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

MYSQL-Suche durch Zellen mit kommagetrennten Werten

Dies ist ein Zeichen für schlechtes DB-Design. Sie sollten sich zuerst Datenbanknormalisierung ansehen und wenn Sie die Struktur ändern können, normalisieren Sie sie zuerst mit einer Verbindungstabelle. Ab sofort können Sie FIND_IN_SET() um Ihre entsprechende Datensatz-ID in Ihrer durch Kommas getrennten ID-Spalte zu finden

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

Ändern Sie den Operator nach Ihren Wünschen. Ich habe ein Beispiel mit dem UND-Operator gezeigt. Beachten Sie, dass Sie FIND_IN_SET verwenden müssen so oft wie die Anzahl der IDs, die Sie in Ihrem Array haben, die Sie mit Ihrer Spalte vergleichen müssen