LEFT JOIN CONCAT('hello_',c.id) possible?


LEFT JOIN CONCAT('hello_',c.id) possible?

有可能拥有这样的东西吗:

选择c.id作为idFROM通道cLEFT JOIN CONCAT('HELO_',c.id)

我需要这个与c.id的连接。别无选择。有什么建议吗?

您询问是否可以使用包含列值和函数(如CONCAT)的表达式在MySQL中的查询中生成表名。

简短的回答是否定的

还有一个更长的答案涉及MySQL准备的语句。这基本上是在MySQL存储过程中使用字符串处理来生成要运行的查询文本的一种方法。

如果您打算在SQL级别执行此操作:这是不可能的。表名称标记不是根据表达式计算的。

然而,对于php和动态创建查询,根据需要使用"修改过的"表名应该相当麻烦。因此,在构建查询时,concat()应该是一个php表达式。

如果您试图基于基表的列值来联接(不同的)表,那么您将远离任何SQL语义。

在这种情况下,您可能需要重新排列您的模式,以合并由您的concat现在试图计算信息的表所标识的所有表实例,并用它所属的逻辑表标记每一行。