我得有文本串這樣的:具體分割記錄(字符串)分成幾個領域
「澳大利亞/悉尼/天2738/Jose和卡林」
我需要拆分它到幾列。但這是棘手的部分。字符串也可能看起來像
「英國/曼徹斯特/中心/第627天/盧卡斯和尼科爾」。
所有字符串都一個模板,我想:
「%/%/ d%/%和%」
,我需要每一個 「%」 移動到另一個現場/列。
「英國」, 「曼徹斯特/中心」, 「627天」, 「盧卡斯」, 「妮可」
inb4:用mysql 5.5 謝謝! Nik35。
我得有文本串這樣的:具體分割記錄(字符串)分成幾個領域
「澳大利亞/悉尼/天2738/Jose和卡林」
我需要拆分它到幾列。但這是棘手的部分。字符串也可能看起來像
「英國/曼徹斯特/中心/第627天/盧卡斯和尼科爾」。
所有字符串都一個模板,我想:
「%/%/ d%/%和%」
,我需要每一個 「%」 移動到另一個現場/列。
「英國」, 「曼徹斯特/中心」, 「627天」, 「盧卡斯」, 「妮可」
inb4:用mysql 5.5 謝謝! Nik35。
MySQL沒有字符串的拆分功能,但here您可以看到一個用戶定義的函數,您可以使用它來完成您的工作。
例如:
select SPLIT_STR(SPLIT_STR(ColumnA, "/D",1), "/", 1),
CONCAT(SPLIT_STR(SPLIT_STR(ColumnA, "/D",1), "/", 2),'/',
SPLIT_STR(SPLIT_STR(ColumnA, "/D",1), "/", 3)),
CONCAT('D',SPLIT_STR(SPLIT_STR(ColumnA, "/D",2), "/", 1)),
SPLIT_STR(SPLIT_STR(ColumnA, "/D",2), "/", 2)
from table1
OUTPUT(SQL fiddle):
Australia Sydney/ Day 2738 Jose and Carlin
UK Manchester/Centre Day 627 Lucas and Nicole
不知道,如果MySQL本身能做到這一點。但是你可以添加一個用戶定義的函數來實現它,如果你有固定數量的由/分隔的字段,就更容易。如果你想要它的動態解決方案,那麼這種方法很難實現,甚至你的腳本語言必須小心處理,而不僅僅是查詢。
只是如果它幫助了一點方向:http://blog.fedecarg.com/2009/02/22/mysql-split-string-function/
我有幾個申請動態delimetters第二的感覺。它可以包含第二個例子中顯示的delimetter「/」。 SPLIT_STR可以處理這個嗎? – NikVankevsky
非常感謝!這對我很好。 – NikVankevsky
不客氣。也許這是我的最後更新更好。 – neutrino