Mysql
 sql >> Datenbank >  >> RDS >> Mysql

mysql-Feldname aus Variable

Wenn sich die Zeichenfolge in Ihrer externen Anwendung (wie PHP) befindet, erstellen Sie einfach die MySQL-Anweisung.

Wenn sich die Zeichenfolge in einer MySQL-Tabelle befindet, ist dies nicht möglich. MySQL hat kein eval() oder eine solche Funktion. Folgendes ist nicht möglich:

Angenommen, Sie haben eine Tabelle queries mit einem Feld columnname die sich auf einen der Spaltennamen in der Tabelle mytable bezieht . Es können zusätzliche Spalten in queries vorhanden sein mit denen Sie den columnname auswählen können du willst.

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

Sie können jedoch mit PREPARED STATEMENTS . Beachten Sie, dass dies sehr hacky ist.

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

PREPARE stmt FROM @s;
EXECUTE stmt;