sql >> Databasteknik >  >> RDS >> Mysql

Mysql WHERE-problem med kommaseparerad lista

Kortsiktig lösning

Använd FIND_IN_SET-funktionen :

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

Långsiktig lösning

Normalisera dina data – detta verkar vara en många-till-många-relation som redan involverar två tabeller. Den kommaseparerade listan måste omvandlas till en egen tabell:

ARTIST_LIST

  • artist_id (primär nyckel, främmande nyckel till ARTIST)
  • uid (primärnyckel, främmande nyckel till TBL)


  1. Formatera en SQL-tidsstämpel med PHP

  2. MySQL Error 1153 - Fick ett paket större än 'max_allowed_packet' byte

  3. Hur binder man SQL-variabler i PHP?

  4. Datamodellen för smarta hem