我試圖用子查詢選擇資料。如果我在沒有其他東西的情況下運行子查詢,它會按預期作業,否則它只回傳 1 行而不是 4 行的資料。
SELECT t.IDS,
(
SELECT GROUP_CONCAT(_t.DATA SEPARATOR ';')
FROM table _t
WHERE _t.ID IN (t.IDS)
) as DATA
FROM (
SELECT '1,2,3,4' as IDS
) t;
桌子:
ID | 資料 |
---|---|
1 | 測驗 |
2 | 測驗1 |
3 | 測驗2 |
4 | 測驗3 |
查詢應回傳:IDS: '1,2,3,4' DATA: 'Test;Test1;Test2;Test3'
目前它回傳這個:IDS: '1,2,3,4' DATA: 'Test'
上面的查詢只是一個例子。
uj5u.com熱心網友回復:
您的表 t 是一個字串,因此IN
不起作用,但您可以使用它FIND_IN_SET
,但性能很差。
CREATE TABLE tab1 ( `ID` INTEGER, `DATA` VARCHAR(5) ); INSERT INTO tab1 (`ID`, `DATA`) VALUES ('1', 'Test'), ('2', 'Test1'), ('3', 'Test2'), ('4', 'Test3');
SELECT t.IDS, ( SELECT GROUP_CONCAT(_t.DATA ORDER BY _t.ID SEPARATOR ';') FROM tab1 _t WHERE FIND_IN_SET(_t.ID,t.IDS) ) as DATA FROM ( SELECT '1,2,3,4' as IDS ) t;
身份驗證 | 資料 :-------- | :--------- 1,2,3,4 | 測驗;測驗1;測驗2;測驗3
db<>在這里擺弄
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/469064.html
上一篇:檢索上一個日期的最后一個有效值
下一篇:插件“AspectJweaver”無法初始化“java.lang.NoClassDefFoundError:com/intellij/openapi/compiler/ClassInstrumenti