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

Mysql WHERE-problem med kommasepareret liste

Kortsigtet løsning

Brug funktionen FIND_IN_SET :

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

Langsigtet løsning

Normaliser dine data - dette ser ud til at være et mange-til-mange forhold, der allerede involverer to tabeller. Den kommaseparerede liste skal omdannes til en egen tabel:

ARTIST_LIST

  • artist_id (primær nøgle, fremmednøgle til ARTIST)
  • uid (primær nøgle, fremmednøgle til TBL)


  1. SQL Server-transaktionsloggen, del 3:Grundlæggende logføring

  2. problemer med at installere perl DBI-mysql i windows

  3. Primære nøgler med Apache Spark

  4. Nogle gode nyheder til Standard Edition-kunder i SQL Server 2014