Mysql
 sql >> база данни >  >> RDS >> Mysql

FIND_IN_SET с множество стойности

FIND_IN_SET() може да се използва само за търсене на една стойност в списък, разделен със запетая, не работи с два списъка.

Ще трябва да го извикате отделно за всяка стойност.

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

Би било по-добре, ако нормализирате вашата схема, вместо да използвате списъци, разделени със запетая. Ако създадете таблица много към много с идентификаторите на категориите, можете да направите:

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)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да INSERT Ако ред не съществува (UPSERT) в MySQL

  2. Извличане на редове, добавени миналия час

  3. Сумирайте резултатите от няколко заявки и след това намерете топ 5 в SQL

  4. Избягване на вложени заявки

  5. Автоматично стартиране на заявка в mysql