首页 >数据库 >mysql教程 >可以使用字符串变量动态访问MySQL字段吗?

可以使用字符串变量动态访问MySQL字段吗?

Patricia Arquette
Patricia Arquette原创
2024-11-19 08:23:02912浏览

Can MySQL Fields Be Accessed Dynamically Using String Variables?

通过变量动态访问 MySQL 字段

问题:

可以通过存储在数据库中的名称以编程方式访问 MySQL 字段吗?字符串变量,特别是用于动态更新字段值?

示例用例:

SET fieldname = NEW.`name`;
UPDATE table SET fieldname = 1 ;

答案:

The通过变量动态访问 MySQL 字段的能力取决于上下文。

外部变量:

如果字段名称作为变量存储在外部应用程序中(例如, PHP),构建有效的 MySQL 语句是可能的。

内部变量:

但是,如果字段名称作为值存储在 MySQL 表中,则访问它使用标准 SQL 语法是不可行的。这是由于 MySQL 缺少评估 (eval) 函数。

准备语句技术:

作为一种解决方法,可以使用准备语句,尽管这种方法是被认为是一个hacky解决方案。其实现方式如下:

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

PREPARE stmt FROM @s;
EXECUTE stmt;

此技术涉及将表的列名存储在用户变量 (@colname) 中、连接动态 SQL 语句、准备语句并执行它。

以上是可以使用字符串变量动态访问MySQL字段吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn