Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Mysql WHERE problem z listą oddzieloną przecinkami

Rozwiązanie krótkoterminowe

Użyj funkcji ZNAJDŹ_IN_SET :

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

Rozwiązanie długoterminowe

Normalizuj swoje dane — wydaje się, że jest to relacja wiele-do-wielu, która obejmuje już dwie tabele. Lista oddzielona przecinkami musi zostać przekształcona w osobną tabelę:

ARTIST_LIST

  • artist_id (klucz podstawowy, klucz obcy do ARTIST)
  • uid (klucz podstawowy, klucz obcy do TBL)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak profilować MySQL

  2. Wstawianie do tabeli w kolejności

  3. Dodatkowe pola z SQL MIN() i GROUP BY

  4. jak wstawić wiele wartości w mysql i uniknąć duplikatów?

  5. MYSQL - Podziel dane na wiele wierszy