FIND_IN_SET()
chỉ có thể được sử dụng để tìm kiếm một giá trị duy nhất trong danh sách được phân tách bằng dấu phẩy, nó không hoạt động với hai danh sách.
Bạn sẽ cần gọi nó riêng cho từng giá trị.
SELECT * FROM tablename
WHERE FIND_IN_SET('12', category_id) OR FIND_IN_SET('13', category_id) OR FIND_IN_SET('15', category_id)
Sẽ tốt hơn nếu bạn chuẩn hóa lược đồ của mình thay vì sử dụng các danh sách được phân tách bằng dấu phẩy. Nếu bạn tạo một bảng nhiều-nhiều với các ID danh mục, bạn có thể thực hiện:
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)