MySQL文字列関数:文字列切り取り

3635 ワード

自動回転http://www.sqlstudy.com/sql_articale.php?id=2008091902
MySQL文字列関数:文字列切り取り
MySQL文字列切り取り関数:left()、right()、substring()、substring()index()mid()、substr()もあります。その中で、mid()、substr()はsubstring()関数に相当し、substring()の機能は非常に強力で柔軟である。
1.文字列切り取り:left(str、length)
mysql> select left('sqlstudy.com', 3);
+-------------------------+
| left('sqlstudy.com', 3) |
+-------------------------+
| sql                     |
+-------------------------+
2.文字列切り取り:right(str,length)
mysql> select right('sqlstudy.com', 3);
+--------------------------+
| right('sqlstudy.com', 3) |
+--------------------------+
| com                      |
+--------------------------+
3.文字列切り取り:substring(str、pos);substring(str,pos,len)
3.1文字列の4文字目の位置から取り始め、終了するまで。
mysql> select substring('sqlstudy.com', 4);
+------------------------------+
| substring('sqlstudy.com', 4) |
+------------------------------+
| study.com                    |
+------------------------------+
3.2文字列の4文字目の位置から取り始め、2文字だけ取ります。
mysql> select substring('sqlstudy.com', 4, 2);
+---------------------------------+
| substring('sqlstudy.com', 4, 2) |
+---------------------------------+
| st                              |
+---------------------------------+
3.3文字列の4文字目の位置(逆数)から取り始め、終了するまで。
mysql> select substring('sqlstudy.com', -4);
+-------------------------------+
| substring('sqlstudy.com', -4) |
+-------------------------------+
| .com                          |
+-------------------------------+
3.4文字列の4文字目の位置(逆数)から取り始め、2文字だけ取ります。
mysql> select substring('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> select substring_index('www.sqlstudy.com.cn', '.', 2);
+------------------------------------------------+
| substring_index('www.sqlstudy.com.cn', '.', 2) |
+------------------------------------------------+
| www.sqlstudy                                   |
+------------------------------------------------+
4.2第二の'.'(逆数)以降のすべての文字を切り取ります。
mysql> select substring_index('www.sqlstudy.com.cn', '.', -2);
+-------------------------------------------------+
| substring_index('www.sqlstudy.com.cn', '.', -2) |
+-------------------------------------------------+
| com.cn                                          |
+-------------------------------------------------+
4.3文字列にdelimパラメータで指定された値が見つからない場合、文字列全体を返します。
mysql> select substring_index('www.sqlstudy.com.cn', '.coc', 1);
+---------------------------------------------------+
| substring_index('www.sqlstudy.com.cn', '.coc', 1) |
+---------------------------------------------------+
| www.sqlstudy.com.cn                               |
+---------------------------------------------------+