Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Przekazywanie nazwy kolumny jako parametru w MySQL

Jeśli chodzi o przekazanie nazwy kolumny jako parametru w MySQL (pytanie w tytule), nie jest to możliwe w instrukcji SQL. identyfikatory w instrukcji SQL (np. nazwy tabel i nazwy kolumn) muszą być częścią tekstu SQL. Nie można ich przekazać za pomocą symbolu zastępczego powiązania.

IN Operator porównania oczekuje listy wartości ujętej w nawiasy lub zapytania SELECT ujętego w nawiasy, które zwraca zestaw wartości.

Nie jest jasne, co próbujesz zrobić.

Podejrzewam, że template_allowed_parent_templates to kolumna w tabeli, która zawiera listę wartości oddzielonych przecinkami. (drżenie.)

Podejrzewam, że możesz szukać MySQL FIND_IN_SET funkcja string, która "przeszuka" listę oddzieloną przecinkami dla określonej wartości.

Jako prosta demonstracja:

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

Funkcja zwraca dodatnią liczbę całkowitą, gdy określona wartość jest „znaleziona”. Możesz użyć tej funkcji w predykacie, np.

WHERE FIND_IN_SET(id,template_allowed_parent_templates)

lub

WHERE FIND_IN_SET( ? ,template_allowed_parent_templates)

(Działa, ponieważ w MySQL dodatnia liczba całkowita jest oceniana jako PRAWDA w kontekście logicznym.)

Zgaduję tylko, co próbujesz osiągnąć.



  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:Jaka jest różnica między float a double?

  2. Jak tworzyć i używać widoków MySQL

  3. Jak stworzyć bazę danych w MySQL

  4. Awaria kontenera MySQL po zmianie /etc/mysql/my.cnf, jak cofnąć?

  5. Zapytanie zagnieżdżone w węźle js przy użyciu mysql