Hvis strengen er i dit eksterne program (såsom PHP), skal du selvfølgelig bare konstruere MySQL-sætningen.
Hvis strengen er inde i en MySQL-tabel, kan du ikke. MySQL har ingen eval()
eller en sådan funktion. Følgende er umuligt:
Antag, at du har en tabel queries
med et felt columnname
der henviser til et af kolonnenavnene i tabellen mytable
. Der kan være yderligere kolonner i queries
der giver dig mulighed for at vælge columnname
du ønsker.
INSERT INTO queries (columname) VALUES ("name")
SELECT (select columnname from queries) from mytable
Du kan dog arbejde med forberedte erklæringer . Vær opmærksom på, at dette er meget hacky.
SELECT columnname from queries into @colname;
SET @table = 'mytable';
SET @s = CONCAT('SELECT ',@colname,' FROM ', @table);
PREPARE stmt FROM @s;
EXECUTE stmt;