1

我想用变量替换字段名称以从 PHP 和 MySQL 中的表中获取数据。

select * from demo where variable-1

代替select * from demo where fieldname=1

因为有超过 50 个字段名可以从下拉列表中选择。

4

2 回答 2

5

变量不会field names. table Names它唯一会做的就是当你创建动态 sql时,例如

SET @variableName = 'fieldname';
SET @sql = CONCAT('SELECT * FROM demo WHERE `', @variableName, '` = 1');
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
于 2013-01-28T05:33:34.520 回答
0

您可以使用准备好的语句

delimiter // 
CREATE PROCEDURE dynamic(IN tbl CHAR(64), IN col CHAR(64))
BEGIN
    SET @s = CONCAT('SELECT ',col,' FROM ',tbl );
    PREPARE stmt FROM @s;
    EXECUTE stmt;
END
//
delimiter ;
于 2013-01-28T05:34:24.200 回答