sql >> Databáze >  >> RDS >> Mysql

Předání názvu sloupce jako parametru v MySQL

Pokud jde o předání názvu sloupce jako parametru v MySQL (otázka v názvu), v příkazu SQL to není možné. identifikátory v příkazu SQL (např. názvy tabulek a názvy sloupců) musí být součástí textu SQL. Ty nelze předat pomocí zástupného symbolu vazby.

IN Operátor porovnání očekává seznam hodnot uzavřený v závorkách nebo dotaz SELECT uzavřený v závorkách, který vrátí sadu hodnot.

Není jasné, o co se pokoušíte.

Mám podezření, že template_allowed_parent_templates je sloupec v tabulce a obsahuje seznam hodnot oddělených čárkami. (otřese se.)

Mám podezření, že možná hledáte MySQL FIND_IN_SET string funkce, která "vyhledá" čárkami oddělený seznam pro konkrétní hodnotu.

Jako jednoduchá ukázka:

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

Funkce vrátí kladné celé číslo, když je zadaná hodnota "nalezena". Tuto funkci můžete použít v predikátu, např.

WHERE FIND_IN_SET(id,template_allowed_parent_templates)

nebo

WHERE FIND_IN_SET( ? ,template_allowed_parent_templates)

(To funguje, protože v MySQL je kladné celé číslo vyhodnoceno jako PRAVDA v booleovském kontextu.)

Jen hádám, čeho se snažíte dosáhnout.



  1. Chyba při importu výpisu SQL do MySQL:Neznámá databáze / Nelze vytvořit databázi

  2. Jak získat aktuální týdenní data v MySQL

  3. Dotaz MySQL, MAX() + GROUP BY

  4. Vytvoření aplikace Java v Oracle JDeveloper, část 1