好记忆也需烂 2020-04-18
MySQL 字符串截取函数:left(), right(), substring(), substring_index()。还有 mid(), substr()。其中,mid(), substr() 等价于 substring() 函数,substring() 的功能非常强大和灵活。
1、字符串截取:left(str, length)
<yoon> select left(‘www.baidu.com‘,3); +-------------------------+ | left(‘www.baidu.com‘,3) | +-------------------------+ | www | +-------------------------+
2、字符串截取:right(str,length)
<yoon> select right(‘www.baidu.com‘,3); +--------------------------+ | right(‘www.baidu.com‘,3) | +--------------------------+ | com | +--------------------------+
3、字符串截取:substring(str, pos); substring(str, pos, len)
从字符串第四个位置开始截取,直到结束:
<yoon> select substring(‘www.baidu.com‘,4); +------------------------------+ | substring(‘www.baidu.com‘,4) | +------------------------------+ | .baidu.com | +------------------------------+
从字符串第四个位置开始截取,只截取两个字符:
<yoon> select substring(‘www.baidu.com‘,4,2); +--------------------------------+ | substring(‘www.baidu.com‘,4,2) | +--------------------------------+ | .b | +--------------------------------+
从字符串第四个位置(倒数)开始截取,直到结束:
<yoon> select substring(‘www.baidu.com‘,-4); +-------------------------------+ | substring(‘www.baidu.com‘,-4) | +-------------------------------+ | .com | +-------------------------------+
从字符串第四个位置(倒数)开始截取,只截取两个字符:
<yoon> select substring(‘www.baidu.com‘,-4,2); +---------------------------------+ | substring(‘www.baidu.com‘,-4,2) | +---------------------------------+ | .c | +---------------------------------+ 注意到在函数 substring(str,pos, len)中, pos 可以是负值,但 len 不能取负值
4、字符串截取:substring_index(str,delim,count)
截取第二个 . 之前的所有字符:
<yoon> select substring_index(‘www.baidu.com‘,‘.‘,2); +----------------------------------------+ | substring_index(‘www.baidu.com‘,‘.‘,2) | +----------------------------------------+ | www.baidu | +----------------------------------------+
截取第二个 . (倒数)之后的所有所有字符:
<yoon> select substring_index(‘www.baidu.com‘,‘.‘,-2); +-----------------------------------------+ | substring_index(‘www.baidu.com‘,‘.‘,-2) | +-----------------------------------------+ | baidu.com | +-----------------------------------------+
如果在字符串中找不到 delim 参数指定的值,就返回整个字符串
<yoon> select substring_index(‘www.baidu.com‘,‘coo‘,1); +------------------------------------------+ | substring_index(‘www.baidu.com‘,‘coo‘,1) | +------------------------------------------+ | www.baidu.com | +------------------------------------------+