变量的mysql字段名

sam*_*kon 22 mysql

是否可以选择名称为字符串的字段?

SELECT 'fieldname' FROM table

我需要这个触发器来使用动态字段名称

SET fieldname = NEW.`name`;
UPDATE table SET fieldname = 1 ; 
Run Code Online (Sandbox Code Playgroud)

Kon*_*rak 23

如果字符串在您的外部应用程序(如PHP)中,请确保构造MySQL语句.

如果字符串在MySQL表中,则不能.MySQL没有eval()或没有这样的功能.以下是不可能的:

假设您有一个表,queries其中的字段columnname引用表中的一个列名mytable.可能还有其他列queries允许您选择所需的列columnname.

INSERT INTO queries  (columname) VALUES ("name")
SELECT (select columnname from queries) from mytable
Run Code Online (Sandbox Code Playgroud)

但是,您可以使用PREPARED STATEMENTS.请注意,这非常hacky.

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

PREPARE stmt FROM @s;
EXECUTE stmt;
Run Code Online (Sandbox Code Playgroud)