在mysql中,我們經(jīng)常會(huì)處理字符串,有時(shí)候需要將一個(gè)長(zhǎng)的字符串根據(jù)特定的分隔符拆分成多行,這時(shí)候可以使用mysql內(nèi)置的函數(shù)來(lái)實(shí)現(xiàn)。
MySQL中的字符串拆分函數(shù)有兩個(gè):SUBSTRING_INDEX和REGEXP_SUBSTR。
使用SUBSTRING_INDEX函數(shù),語(yǔ)法如下:
SELECT SUBSTRING_INDEX(string, delimiter, count);
其中,string為需要操作的字符串,delimiter為分隔符,count為拆分成幾行。舉個(gè)例子:
SELECT SUBSTRING_INDEX('Hello,World,MySQL', ',', 2);
執(zhí)行結(jié)果為:
Hello,World
使用REGEXP_SUBSTR函數(shù),語(yǔ)法如下:
SELECT REGEXP_SUBSTR(string, pattern, position, occurrence);
其中,string為需要操作的字符串,pattern為正則表達(dá)式,position為起點(diǎn)位置,occurrence為拆分成幾行。舉個(gè)例子:
SELECT REGEXP_SUBSTR('Hello;World;MySQL', '[^;]+', 1, 2);
執(zhí)行結(jié)果為:
World
需要注意的是,如果需要拆分的字符串中包含了換行符,可以使用REPLACE函數(shù)將換行符替換成其他不會(huì)被拆分的字符。例如:
SELECT SUBSTRING_INDEX(REPLACE(string, '\n', '|'), '|', 2);
以上就是mysql字符串分割成行的方法。