提问者:小点点

MySQL从两个不工作的串联字符串中选择


我尝试从名为t32的表中选择数据,代码如下:

SELECT
  timestamp AS "time",
  id
FROM CONCAT('t', "32")

但是出现以下错误:

#1064 - Fehler in der SQL-Syntax. Bitte die korrekte Syntax im Handbuch nachschlagen bei '("t", "32") LIMIT 0, 25' in Zeile 4

意译为英文:

#1064 - Error in SQL syntax. Please look up the correct syntax near '("t", "32") LIMIT 0, 25' in line 4

但是如果我使用

SELECT timestamp AS "time", id FROM t32

一切都像预期的那样。

关于帮助我会很高兴的


共1个答案

匿名用户

您正在尝试在SQL查询中构造表名。 使用常规SQL查询无法做到这一点。

一种解决方案是动态SQL--即prepareexec方法。

然而,这确实表明您的数据模型存在问题。 通常,构造表名应该是不必要的。 关于单个实体的所有数据都应该在单个表中。

因此,查询应该看起来更像:

select t.*
from t
where <somecol> = 32;