mysql从两个串联的字符串中选择不起作用

bfnvny8b  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(356)

我尝试从名为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

一切正常。
关于帮助我会很高兴的

5vf7fwbs

5vf7fwbs1#

您正在尝试在sql查询中构造表名。您不能使用常规sql查询来执行此操作。
一种解决方案是动态sql——即 prepare 以及 exec 接近。
然而,这确实表明您的数据模型存在问题。通常,不需要构造表名。关于单个实体的所有数据都应该在一个表中。
因此,查询应该更像:

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

相关问题