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

PDO обвързващи стойности за MySQL IN израз

Това е същото, което беше зададено в този въпрос:Мога ли да свържа масив към условие IN()?

Отговорът беше, че за списък с променлив размер в in клауза, ще трябва сами да изградите заявката.

Въпреки това, можете да използвате списъка с кавички, разделен със запетаи, като използвате find_in_set , въпреки че за големи набори от данни това би имало значително въздействие върху производителността, тъй като всяка стойност в таблицата трябва да бъде прехвърлена към тип char.

Например:

select users.id
from users
join products
on products.user_id = users.id
where find_in_set(cast(products.id as char), :products)

Или, като трета опция, можете да създадете дефинирана от потребителя функция, която разделя списъка, разделен със запетая, вместо вас (вж. http://www.slickdev.com/2008/09/15/mysql-query-real-values-from-delimiter-separated-string-ids / ). Това вероятно е най-добрият вариант от трите, особено ако имате много заявки, които разчитат на in(...) клаузи.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySql сумира елементи на колона

  2. Как да активирам mysqlnd за php?

  3. Изпълнение на множество SQL заявки в един израз с PHP

  4. Как да архивирате MySQL бази данни с помощта на AutoMySQLBackup

  5. Покриване на Mysql срещу композитен срещу индекс на колона