在下面的MySQL中考虑此示例。

DECLARE myText TEXT;
SET myText = "myColumn";

SELECT * FROM myTable WHERE myText = "myValue";


在上述情况下,它不会选择任何列,因为myText的值永远不会是“ myValue”。但是,我真正想做的是将myText的值解释为查询的一部分,以便执行的最终查询为:

SELECT * FROM myTable WHERE myColumn = "myValue";


我怎样才能做到这一点?

最佳答案

使用prepared statements

SET @myText = "myColumn";
SET @s = CONCAT('SELECT * FROM myTable WHERE ', @myText, ' = "myValue" ');
PREPARE stmt1 FROM @s;
EXECUTE stmt1;
DEALLOCATE PREPARE stmt1;

关于mysql - 将TEXT的值解释为查询的一部分?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7664507/

10-14 00:09