【发布时间】:2017-08-27 21:45:45
【问题描述】:
我喜欢使用另一个查询的结果来处理列名。为此,我喜欢使用CONCAT()。但不知何故,它不起作用;当我运行这一行时,我得到了 0 行:
SELECT * FROM cover WHERE CONCAT('c','9') = 1;
当我不使用 CONCAT() 时,它可以完美运行:
SELECT * FROM cover WHERE c9 = 1;
而且CONCAT() 似乎也有效。有了这个,我得到了一个结果:
SELECT CONCAT('c','9');
我尝试了这个问题的所有解决方案: MySQL select with CONCAT condition
喜欢这个,但我总是得到 0rows 回来:
SELECT * FROM (
SELECT id, CONCAT('c', '9') as target
FROM cover) base
WHERE target = "1"
我的 MySQL 版本是; 10.1.16-MariaDB
【问题讨论】:
-
concat生成一个字符串,它不会被解释为列名。如果您可以使用程序(例如 php、perl、python)来动态构建列名,那就更容易了。 -
@ringø 谢谢,我会考虑用 php 来做。但在这个问题中:stackoverflow.com/questions/5734570/… 看起来这是可能的。
-
好的,谢谢您的解释...我会使用 php ;) ...是的,我想创建一个列名。