sql >> Databasteknik >  >> RDS >> Mysql

Dynamisk konvertering av sträng till kolumnnamn. MySQL

Du kanske vill se svaret på denna fråga , vilket jag tror är vad du försöker åstadkomma. Kortfattat föreslår svaret att man använder förberedda satser för att simulera en eval()-liknande funktionalitet. I ditt fall kan detta fungera (du kan se SQLFiddle här :

SELECT transaction_type FROM orders WHERE id=1 into @colname;
SET @table = 'items';
SET @query = CONCAT('SELECT ',@colname,' FROM ', @table);

PREPARE stmt FROM @query;
EXECUTE stmt;

Jag kommer inte att påstå att jag är någon sorts expert på den underliggande mekaniken på jobbet, men enligt kommentarerna verkar det uppnå målet. Återigen, detta antogs från ett annat svar, så om det fungerar, se till att +1:a det :)



  1. Korrekthet och begränsningar

  2. UNIX_TIMESTAMP i SQL Server

  3. Byt roll efter anslutning till databasen

  4. Codeigniter :Fel i ORDER BY CASE-frågan