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

Подаване на име на колона като параметър в MySQL

Що се отнася до предаването на име на колона като параметър в MySQL (въпросът в заглавието), това не е възможно в SQL израз. Идентификаторите в SQL израз (например имената на таблици и имената на колони) трябва да са част от SQL текста. Те не могат да бъдат предадени с заместител за свързване.

IN Операторът за сравнение очаква списък със стойности, затворени в скоби, или заявка SELECT, затворена в скоби, която връща набор от стойности.

Не е ясно какво се опитвате да направите.

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

Подозирам, че може да търсите MySQL FIND_IN_SET string функция, която ще "търси" в списък, разделен със запетая, за определена стойност.

Като проста демонстрация:

  SELECT FIND_IN_SET('5', '2,3,5,7')
       , FIND_IN_SET('4', '2,3,5,7')

Функцията връща положително цяло число, когато посочената стойност е "намерена". Можете да използвате тази функция в предикат, напр.

WHERE FIND_IN_SET(id,template_allowed_parent_templates)

или

WHERE FIND_IN_SET( ? ,template_allowed_parent_templates)

(Това работи, защото в MySQL положително цяло число се оценява като TRUE в булев контекст.)

Само предполагам какво се опитвате да постигнете.



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

  2. Какво означава двойни ленти (||) в SQL?

  3. Вземете възрастта на човек в MySQL

  4. BIGINT Грешка извън обхвата след MySQL 5.5

  5. Пълнотекстово търсене в MySQL с utf8 (персийски/арабски)