:| 5 |
C1 IDS
A1 3 2
A2 1 | 2
A3 3
A4 1 | 2 | 3 | 4 | 5
A5 2 | 4 | 1 | 3字符串分割和的concat與名稱在MySQL
表2:
ID名稱
1 AA
2 ABERT
3 CDE
4 XXWQ
5 Y
我想從表1中加入上都tb1.ids = tb2.id表作爲拆分所有的ID,然後用自己的名字和替換然後再次連接。
輸出
3 | 5 | 2 - > CDE | Y | ABERT
1 | 2 - > AA | ABERT
我使用以下代碼來分割字符串。
CASE WHEN tb1.ids LIKE '%|%'THEN SUBSTRING_INDEX(`tb1.ids` , '|', 1) ELSE tb1.ids END AS id1,
CASE WHEN tb1.ids LIKE '%|%|%' THEN SUBSTRING_INDEX(SUBSTRING_INDEX(`tb1.ids` , '|', 2),'|',-1) WHEN tb1.ids LIKE '%|%' THEN SUBSTRING_INDEX(`tb1.ids` , '|', -1)ELSE '' END AS id2,
CASE WHEN tb1.ids LIKE '%|%|%|%' THEN SUBSTRING_INDEX(SUBSTRING_INDEX(`tb1.ids` , '|', 3),'|',-1) WHEN tb1.ids LIKE '%|%|%' THEN SUBSTRING_INDEX(`tb1.ids` , '|', -1) ELSE '' END AS id3,
CASE WHEN tb1.ids LIKE '%|%|%|%|%' THEN SUBSTRING_INDEX(SUBSTRING_INDEX(`tb1.ids` , '|', 4),'|',-1) WHEN tb1.ids LIKE '%|%|%|%' THEN SUBSTRING_INDEX(`tb1.ids` , '|', -1) ELSE '' END AS id4,
CASE WHEN tb1.ids LIKE '%|%|%|%|%|%' THEN SUBSTRING_INDEX(SUBSTRING_INDEX(`tb1.ids` , '|', 5),'|',-1) WHEN tb1.ids LIKE '%|%|%|%|%' THEN SUBSTRING_INDEX(`tb1.ids` , '|', -1) ELSE '' END AS id5
絕不會在單個列中存儲多個值。如果你有這樣的問題。你能改變你的餐桌設計嗎? –
我沒有寫入數據庫的權限。實際上,該專欄是特定行程的多個目的地的行程。 –