在JoinDB中使用动态列和表名称

时间:2018-03-27 04:52:58

标签: mysql sql mariadb

我不确定如何做到这一点,或者它是否可能,但从概念上看,它看起来像这样:

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部分中完成这项工作。

这可能吗?

1 个答案:

答案 0 :(得分:1)

不,这是不可能的。必须在解析查询时修复SQL查询的表名,列名和所有其他元素。根据执行期间发现的数据,您无法使查询执行不同的操作。

这就像问,“我可以写一个返回值的Java函数,但它返回的值决定了我调用的函数吗?”

相关问题