Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Mysql WHERE problema com lista separada por vírgulas

Solução de curto prazo


Use a função FIND_IN_SET :
SELECT uid 
  FROM tbl 
 WHERE FIND_IN_SET('401', artist_list) > 0

Solução de longo prazo


Normalize seus dados - isso parece ser um relacionamento muitos-para-muitos já envolvendo duas tabelas. A lista separada por vírgulas precisa ser transformada em uma tabela própria:

ARTIST_LIST

  • artist_id (chave primária, chave estrangeira para ARTIST)
  • uid (chave primária, chave estrangeira para TBL)