来自变量的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

回到顶部