是否有可能有这样的事情:
选择c.id作为id 来自频道c LEFT JOIN CONCAT(' hello _',c.id)
我需要c.id.这个concat。没有别的办法。 那么任何提示?
答案 0 :(得分:2)
您询问是否可以使用涉及列值和CONCAT等函数的表达式在MySQL中的查询中生成表名。
简短的回答是否。
有一个涉及MySQL准备语句的更长答案。这基本上是一种在MySQL存储过程中使用字符串处理来生成要运行的查询文本的方法。
答案 1 :(得分:0)
如果您打算在SQL级别执行此操作:则无法执行此操作。表名称标记不是从表达式计算的。
然而,使用php并动态创建查询,根据您的需要使用“已修改”的表名称应该非常简单。
因此,构建查询时,concat()
应该是php表达式。
如果您尝试基于基表的列值加入(不同的)表,则远离任何SQL语义。
在这种情况下,您可能需要重新排列架构以合并由concat现在尝试计算单个表的信息所标识的所有表实例,并使用它所属的逻辑表标记每一行。