截取的字符串為15,151,152,16',可以看作是ip吧(雖然這裡指的不是iP),
然後要截取每個逗號之前那部分
以下的意思是:在字符串中以逗號為索引,獲取不同索引位的字符
結果如下:
SELECT SUBSTRING_INDEX('15,151,152,16',',',1); ==>得到結果為: 15 SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('15,151,152,16',',',2),',',-1);==>得到結果為: 151 SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('15,151,152,16',',',-2),',',1);==> 得到結果為:152 SELECT SUBSTRING_INDEX('15,151,152,16',',',-1);==>得到結果為: 16
使用MYSQL的SUBSTRING_INDEX函數實現你的功能,此函數的語法解釋如下:
SUBSTRING_INDEX(str,delim,count)
返回從字符串str的第count個出現的分隔符delim之後的子串。如果count是正數,返回最後的分隔符到左邊(從左邊數) 的所有字符。如果count是負數,返回最後的分隔符到右邊的所有字符(從右邊數)。
mysql> select SUBSTRING_INDEX('www.mysql.com', '.', 2);
-> 'www.mysql'
mysql> select SUBSTRING_INDEX('www.mysql.com', '.', -2);
-> 'mysql.com'
該函數對多字節是可靠的。
如果你的字段名為xxx,值為201207|123|23.5|100|50|和20120703|19|212|||,要獲取第3個內容23.5的函數是:
SUBSTRING_INDEX(SUBSTRING_INDEX(xxx,'|',3),'|',-1)
裡面的函數獲取第3個開始的所有內容,外面的函數獲取裡面函數結果的第1個內容
MySQL的字符串函數截取字符,比用程序截取(如PHP)來得強大、簡潔、方便,所以在這裡分享一下,希望對大家有用。以下幾種實現方法: