sql >> Database teknologi >  >> RDS >> Mysql

mysql feltnavn fra variabel

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;


  1. Er der en måde i ORACLE at forbinde flere rækkelinjer til en enkelt ved at bruge to tabeller, hvor de endelige værdier er adskilt med kommaer?

  2. Hvor dyre er implicitte konverteringer på kolonnesiden?

  3. Sådan gendannes en enkelt MySQL-tabel ved hjælp af mysqldump?

  4. MySQL:NULL vs