mysql中截取字符串的6個函數講解
mysql截取字符串的6個函數
1、LEFT(str,len)
從左邊開始截取,str:被截取字符串;len:截取長度
示例:
2、RIGHT(str,len)
從右邊開始截取,str:被截取字符串;len:截取長度
示例:
3、SUBSTRING(str, pos, len)
str:被截取字符串;pos:截取開始位置;len:截取長度(非必填:不填截取到最大長度)
示例1:
示例2:
4、SUBSTR(str, pos, len)
與SUBSTRING(str, pos, len)函數的使用一樣
str:被截取字符串;pos:截取開始位置;len:截取長度(非必填:不填截取到最大長度)
示例1:
示例2:
5、MID(str, pos, len)
與SUBSTRING(str, pos, len)函數的使用一樣
str:被截取字符串;pos:截取開始位置;len:截取長度(非必填:不填截取到最大長度)
示例1:
示例2:
6、SUBSTRING_INDEX(str, delim, count)
str
:被截取字符串;delim:截取數據依據的字符;count
:截取數量(count>0就從左邊開始取,count<0就從右邊開始取)
示例1:
示例2:
示例3:
最後再說一個函數,截取字符串一般都會用到這個函數: LOCATE(substr,str)
作用: 查找字符串中指定字符的位置
substr
:搜索的字符str
:字符串
從 str 字符串 中獲得 substr 字符 的位置(沒找到返回 0)
示例1:
示例2:
示例3:
mysql截取字符串中間的值
substring_index函數
substring_index(str,delim,count)
str
: 要處理的字符串delim
: 分隔符count
: 計數
例如: str = www.51aaa.com
substring_index(str,'.',1)
結果是:www
substring_index(str,'.',2)
結果是:www.51aaa
也就是說,如果count是正數,那麼就是從左往右數,第N個分隔符的左邊的全部內容
substring_index(str,'.',-1)
結果是:com
substring_index(str,'.',-2)
結果是:51aaa.com
相反,如果是負數,那麼就是從右邊開始數,第N個分隔符右邊的所有內容
那麼,如果我要中間的的aaa怎麼辦?
很簡單的,兩個方向:從右數第二個分隔符的右邊全部,再從左數的第一個分隔符的左邊:
先獲取
substring_index(remarks,'1',-1) as mm
結果是: aaa.com
然後是
substring_index('aaa.com','.',1) as mm
結果是: aaa.com
合起來就是:
substring_index(substring_index(str,'1',-1),'.',1)
應用
數據表t_record的字段remark的值為字符串 1#56次
這裡截取#和次之間的字符串,即獲取數字56
下面sql的-1表示從重右側數第一個#,1表示從左側數起第一個次
select substring_index(substring_index(remarks,'#',-1),'次',1) from t_record
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。
推薦閱讀:
- MySQL 十大常用字符串函數詳解
- mysql5.6 解析JSON字符串方式(支持復雜的嵌套格式)
- MySQL 去除字符串中的括號以及括號裡的所有內容
- MySql字符串拆分實現split功能(字段分割轉列)
- MySQL實現字符串的拼接,截取,替換,查找位置的操作