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

MYSQL търсене в клетки със стойности, разделени със запетая

Това е знак за лош дизайн на DB, който първо трябва да разгледате Нормализация на базата данни и ако можете да промените структурата, тогава първо я нормализирайте с помощта на таблица за свързване, отсега можете да използвате FIND_IN_SET() за да намерите съответния идентификатор на запис в колоната за идентификатори, разделени със запетая

SELECT * FROM table 
WHERE  FIND_IN_SET('id1',column) > 0
AND FIND_IN_SET('id2',column) > 0
AND FIND_IN_SET('id3',column) > 0

Променете оператора според вашето желание, показах пример с оператор AND, имайте предвид, че трябва да използвате FIND_IN_SET толкова пъти, колкото броя на идентификаторите, които имате във вашия масив, които трябва да сравните с вашата колона




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Дребнозърнест контрол на достъпа

  2. Алтернатива на FIND_IN_SET в SQLite?

  3. sql:изберете най-много гласувани елементи от всеки потребител

  4. Импортирайте данни от електронна таблица на Excel или CVS в MySQL

  5. Предайте масив в Mysql заявка с nodejs