我不确定如何做到这一点,或者它是否可能,但从概念上看,它看起来像这样:
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部分中完成这项工作。
这可能吗?
答案 0 :(得分:1)
不,这是不可能的。必须在解析查询时修复SQL查询的表名,列名和所有其他元素。根据执行期间发现的数据,您无法使查询执行不同的操作。
这就像问,“我可以写一个返回值的Java函数,但它返回的值决定了我调用的函数吗?”