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

FIND_IN_SET com valor múltiplo


FIND_IN_SET() só pode ser usado para pesquisar um único valor em uma lista separada por vírgulas, não funciona com duas listas.

Você precisará chamá-lo separadamente para cada valor.
SELECT * FROM tablename
WHERE FIND_IN_SET('12', category_id) OR FIND_IN_SET('13', category_id) OR FIND_IN_SET('15', category_id)

Seria melhor se você normalizasse seu esquema em vez de usar listas separadas por vírgulas. Se você criar uma tabela muitos para muitos com os IDs de categoria, poderá fazer:
SELECT t1.*
FROM tablename AS t1
JOIN item_categories AS c ON t1.id = c.table_id
WHERE c.category_id IN (12, 13, 15)