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

mysql název pole z proměnné

Pokud je řetězec ve vaší externí aplikaci (jako PHP), jistě, stačí vytvořit příkaz MySQL.

Pokud je řetězec uvnitř tabulky MySQL, nemůžete. MySQL nemá žádné eval() nebo takovou funkci. Následující není možné:

Předpokládejme, že máte tabulku queries s polem columnname který odkazuje na jeden z názvů sloupců v tabulce mytable . V queries mohou být další sloupce které vám umožní vybrat columnname chcete.

INSERT INTO queries  (columname) VALUES ("name")
SELECT (select columnname from queries) from mytable

Můžete však pracovat s PŘIPRAVENÝMI VÝKAZY . Uvědomte si, že je to velmi otřesné.

SELECT columnname from queries into @colname;
SET @table = 'mytable';
SET @s = CONCAT('SELECT ',@colname,' FROM ', @table);

PREPARE stmt FROM @s;
EXECUTE stmt;


  1. Kde hodnota ve sloupci obsahujícím hodnoty oddělené čárkou

  2. Jak nastavit možnost maxrecursion pro CTE uvnitř funkce Table-Valued-Function

  3. Jak zakázat ukládání do mezipaměti SQLAlchemy?

  4. Připravený příkaz „WHERE .. IN(..)“ dotaz a řazení — s MySQL