inhumming 2011-11-07
MySQL字符串截取函数:left(),right(),substring(),substring_index()。还有mid(),substr()。其中,mid(),substr()等价于substring()函数,substring()的功能非常强大和灵活。
1.字符串截取:left(str,length)
mysql>selectleft('sqlstudy.com',3);
+-------------------------+
|left('sqlstudy.com',3)|
+-------------------------+
|sql|
+-------------------------+
2.字符串截取:right(str,length)
mysql>selectright('sqlstudy.com',3);
+--------------------------+
|right('sqlstudy.com',3)|
+--------------------------+
|com|
+--------------------------+
3.字符串截取:substring(str,pos);substring(str,pos,len)
3.1从字符串的第4个字符位置开始取,直到结束。
mysql>selectsubstring('sqlstudy.com',4);
+------------------------------+
|substring('sqlstudy.com',4)|
+------------------------------+
|study.com|
+------------------------------+
3.2从字符串的第4个字符位置开始取,只取2个字符。
mysql>selectsubstring('sqlstudy.com',4,2);
+---------------------------------+
|substring('sqlstudy.com',4,2)|
+---------------------------------+
|st|
+---------------------------------+
3.3从字符串的第4个字符位置(倒数)开始取,直到结束。
mysql>selectsubstring('sqlstudy.com',-4);
+-------------------------------+
|substring('sqlstudy.com',-4)|
+-------------------------------+
|.com|
+-------------------------------+
3.4从字符串的第4个字符位置(倒数)开始取,只取2个字符。
mysql>selectsubstring('sqlstudy.com',-4,2);
+----------------------------------+
|substring('sqlstudy.com',-4,2)|
+----------------------------------+
|.c|
+----------------------------------+
我们注意到在函数substring(str,pos,len)中,pos可以是负值,但len不能取负值。
4.字符串截取:substring_index(str,delim,count)
4.1截取第二个'.'之前的所有字符。
mysql>selectsubstring_index('www.sqlstudy.com.cn','.',2);
+------------------------------------------------+
|substring_index('www.sqlstudy.com.cn','.',2)|
+------------------------------------------------+
|www.sqlstudy|
+------------------------------------------------+
4.2截取第二个'.'(倒数)之后的所有字符。
mysql>selectsubstring_index('www.sqlstudy.com.cn','.',-2);
+-------------------------------------------------+
|substring_index('www.sqlstudy.com.cn','.',-2)|
+-------------------------------------------------+
|com.cn|
+-------------------------------------------------+
4.3如果在字符串中找不到delim参数指定的值,就返回整个字符串
mysql>selectsubstring_index('www.sqlstudy.com.cn','.coc',1);
+---------------------------------------------------+
|substring_index('www.sqlstudy.com.cn','.coc',1)|
+---------------------------------------------------+
|www.sqlstudy.com.cn|
+---------------------------------------------------+