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

MySQL WHERE-Problem mit kommagetrennter Liste

Kurzfristige Lösung

Verwenden Sie die FIND_IN_SET-Funktion :

SELECT uid 
  FROM tbl 
 WHERE FIND_IN_SET('401', artist_list) > 0

Langfristige Lösung

Normalisieren Sie Ihre Daten – dies scheint eine Viele-zu-Viele-Beziehung zu sein, die bereits zwei Tabellen umfasst. Die kommagetrennte Liste muss in eine eigene Tabelle umgewandelt werden:

ARTIST_LIST

  • artist_id (Primärschlüssel, Fremdschlüssel zu ARTIST)
  • uid (Primärschlüssel, Fremdschlüssel zu TBL)