sql >> Base de Datos >  >> RDS >> Mysql

FIND_IN_SET con valor múltiple

FIND_IN_SET() solo se puede usar para buscar un solo valor en una lista separada por comas, no funciona con dos listas.

Deberá llamarlo por separado 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)

Sería mejor si normalizara su esquema en lugar de usar listas separadas por comas. Si crea una tabla de muchos a muchos con los ID de categoría, podría hacer lo siguiente:

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)