1. 程式人生 > >MYSQL 子查詢返回多列顯示

MYSQL 子查詢返回多列顯示

因工作需要,目前研究出一種mysql 技能,與大家分享一下。

需求:關聯查詢另一個大表資料的某些(一個以上)欄位

方案:因關聯查詢的表資料太大。多表查詢影響效率,單個子查詢又有些多餘。所以採用多列拼接子查詢,然後根據SUBSTRING_INDEX(SOURCE,SEPARETOR,INDEX+1)。

原理:子查詢返回拼接列;函式擷取還原列

可執行指令碼:

SELECT 
SUBSTRING_INDEX(temp.temp_column,",",1) showFirst, 
SUBSTRING_INDEX(temp.temp_column,",",-1) showOver, 
SUBSTRING_INDEX(SUBSTRING_INDEX(temp.temp_column,',',2),',',-1) showTwo,
temp.*
FROM 
(
SELECT (
SELECT CONCAT_WS(',','12','23','34','45')) temp_column) temp;