繁体   English   中英

在MariaDB / MySQL中的Join中使用动态列和表名

[英]Using dynamic column and table names in Join in MariaDB/MySQL

我不确定如何执行此操作,或者不确定是否可行,但从概念上看,它看起来像这样:

SELECT item_id, CONCAT('field_data_', `field_name`) AS t2,     CONCAT(`field_name`, '_value') AS f
FROM (
   BIG SELECT STATEMENT
) AS t1
JOIN {t2} ON t2.{f} = t1.item_id

JOIN中的{t2}来自通过串联创建的字段,而JOIN中的{f}来自于通过串联创建的另一个字段。

即{t2}和{f}替换为字段的值,而不是字面意义上的t2&f。 我认为可以使用COLUMN_GET之类的方法来完成此操作,但是我不确定如何在JOIN部分中进行此操作。

这可能吗?

不,这是不可能的。 表名称,列名称和SQL查询的所有其他元素必须在解析查询时固定。 您不能使查询根据查询在执行过程中发现的数据做不同的事情。

这就像在问:“我可以编写一个返回值的Java函数,但返回的值确定我调用哪个函数吗?”

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM