来自变量的mysql字段名称
是否可以选择名称为字符串的字段?
SELECT 'fieldname' FROM table
我需要这个来让触发器具有像这样的动态字段名称
SET fieldname = NEW.`name`;UPDATE table SET fieldname = 1 ;
回答:
如果该字符串在您的外部应用程序(如PHP)中,请确保构造MySQL语句。
如果字符串在MySQL表中,则不能。MySQL没有eval()
或没有这样的功能。以下是不可能的:
假设您有一个表,queries
其中的字段columnname
引用该表中的列名之一mytable
。可能会有其他列queries
允许您选择所需的列columnname
。
INSERT INTO queries (columname) VALUES ("name")SELECT (select columnname from queries) from mytable
但是,您可以使用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;
以上是 来自变量的mysql字段名称 的全部内容, 来源链接: utcz.com/qa/397929.html