我尝试从名为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
一切都像预期的那样。
关于帮助我会很高兴的
您正在尝试在SQL查询中构造表名。 使用常规SQL查询无法做到这一点。
一种解决方案是动态SQL--即prepare
和exec
方法。
然而,这确实表明您的数据模型存在问题。 通常,构造表名应该是不必要的。 关于单个实体的所有数据都应该在单个表中。
因此,查询应该看起来更像:
select t.*
from t
where <somecol> = 32;