表1
| string 1 |
|蘇黎世,Grüngasse |
|Flagshipstore Thun, B?lliz, Raum 1 |
上面的字串需要切成兩列,字串的值出現在共同的(,)之前
結果
| col 1 | col 2 |
| 蘇黎世 | 格魯恩加斯 |
|圖恩 |B?lliz |
uj5u.com熱心網友回復:
如果你想用逗號來分隔一列,你可以根據你的預期結果,使用下面的方法:
SELECT SUBSTRING_INDEX(column1, ', ' , 1) as first_column,
SUBSTRING_INDEX(SUBSTRING_INDEX(column1, ', ', 2), ', ', - 1) as second_column
from table_a;
Updated: 如果你想檢查可能少于三個值的字串,就像 @Akina 在評論中提到的那樣,使用:
歸功于用戶@fthiella: MySQL - 獲取前3個逗號分隔的值
SELECT column1 as tot_column, SUBSTRING_INDEX(column1, ', ', 1) AS first_col,
CASE WHEN LENGTH(column1)-LENGTH(Replace(column1, ',', ''))> 0。
THEN SUBSTRING_INDEX(SUBSTRING_INDEX(column1, ', ', 2), ', ' , 1)
ELSE NULL END AS second_col。
CASE WHEN LENGTH(column1)-LENGTH(Replace(column1, ',', ''))> 1。
THEN SUBSTRING_INDEX(SUBSTRING_INDEX(column1, ', ', 3), ', ' , -1)
ELSE NULL END AS third_col
FROM
table_a
uj5u.com熱心網友回復:
如果我沒有理解錯的話,你希望第一個逗號之前的字串和其余的列分成兩部分
SELECT SUBSTRING_INDEX(column1, ', ' , 1) as first_column,
SUBSTRING(column1 FROM LOCATE(', ', column1) as the_rest
from test;
結果
| first_column | the_rest |
| ------------------ |
| 蘇黎世 | , Grüngasse | ?
| 倫敦 | , 巴黎, New 紐約 |
|圖恩旗艦店 | , B?lliz, Raum 1 |
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/307862.html
標籤:

