问题:
可以根据变量?
背景:
在某些场景下,例如使用触发器时,可能需要动态更新名称事先未知的字段。
代码示例:
SET fieldname = NEW.`name`; UPDATE table SET fieldname = 1 ;
答案:
在 MySQL 中,无法从变量直接访问字段名称。但是,有两种方法可以满足此需求:
1。外部构造(如果变量在外部应用程序中):
如果字段名称在外部应用程序(例如 PHP)中可用,则可以动态构造 MySQL 语句。
示例:
$fieldName = "fieldname"; $sql = "SELECT $fieldName FROM table";
2.准备好的语句(对于存储在 MySQL 中的变量):
如果字段名称存储在 MySQL 表中,您可以使用准备好的语句来实现所需的行为。
代码示例:
SELECT columnname from queries into @colname; SET @table = 'mytable'; SET @s = CONCAT('SELECT ',@colname,' FROM ', @table); PREPARE stmt FROM @s; EXECUTE stmt;
注意:准备好的语句需要仔细处理变量替换和潜在的 SQL 注入漏洞。
以上是如何在 MySQL 查询中动态检索和使用字段名称?的详细内容。更多信息请关注PHP中文网其他相关文章!