sql >> Database >  >> RDS >> Mysql

Mysql WHERE-probleem met door komma's gescheiden lijst

Korte termijn oplossing

Gebruik de FIND_IN_SET-functie :

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

Lange termijn oplossing

Normaliseer uw gegevens - dit lijkt een veel-op-veel-relatie te zijn waarbij al twee tabellen betrokken zijn. De door komma's gescheiden lijst moet worden omgezet in een eigen tabel:

ARTIST_LIST

  • artist_id (primaire sleutel, externe sleutel naar ARTIST)
  • uid (primaire sleutel, refererende sleutel naar TBL)


  1. ID's opslaan als door komma's gescheiden waarden

  2. SELECTEER de ene kolom als de andere nul is

  3. Hoe te controleren of een gebruiker op [Annuleren] heeft geklikt op een InputBox in VBA

  4. Welsprekend veel-op-veel-op-veel - hoe een verre relatie gemakkelijk te laden