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

FIND_IN_SET con più valori

FIND_IN_SET() può essere utilizzato solo per cercare un singolo valore in un elenco separato da virgole, non funziona con due elenchi.

Dovrai chiamarlo separatamente per ogni valore.

SELECT * FROM tablename
WHERE FIND_IN_SET('12', category_id) OR FIND_IN_SET('13', category_id) OR FIND_IN_SET('15', category_id)

Sarebbe meglio se tu normalizzassi il tuo schema invece di usare elenchi separati da virgole. Se crei una tabella molti-a-molti con gli ID di categoria, potresti fare:

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)