sql >> Base de Datos >  >> RDS >> Mysql

nombre de campo mysql de variable

Si la cadena está en su aplicación externa (como PHP), claro, solo construya la declaración de MySQL.

Si la cadena está dentro de una tabla MySQL, no puede. MySQL no tiene eval() o tal función. Lo siguiente es imposible:

Suponga que tiene una tabla queries con un campo columnname que se refiere a uno de los nombres de columna en la tabla mytable . Puede haber columnas adicionales en queries que le permiten seleccionar el columnname quieres.

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

Sin embargo, puede trabajar con DECLARACIONES PREPARADAS . Tenga en cuenta que esto es muy hacky.

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

PREPARE stmt FROM @s;
EXECUTE stmt;