簡體   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