在本教學中,我們將向您介紹MySQL SUBSTRING
函式從字串中提取子字串。
SUBSTRING
函式從特定位置開始的字串返回一個給定長度的子字串。 MySQL提供了各種形式的子串功能。
我們將在以下部分中檢查SUBSTRING
函式的每種形式。
SUBSTRING(string,position);
SUBSTRING(string FROM position);
有兩個引數:
string
引數是要提取子字串的字串。position
引數是一個整數,用於指定子串的起始字元,position
可以是正或負整數。如果position
為正,則SUBSTRING
函式從字串的開始處提取子字串。請參閱以下字串。
例如,要從「MySQL SUBSTRING
」字串中獲取子字串:「SUBSTRING
」,子串的位置必須從7
開始,如以下SELECT語句:
mysql> SELECT SUBSTRING('MYSQL SUBSTRING', 7);
+---------------------------------+
| SUBSTRING('MYSQL SUBSTRING', 7) |
+---------------------------------+
| SUBSTRING |
+---------------------------------+
1 row in set
請注意,如果position
引數為零,則SUBSTRING
函式返回一個空字串:
mysql> SELECT SUBSTRING('MYSQL SUBSTRING', 0);
+---------------------------------+
| SUBSTRING('MYSQL SUBSTRING', 0) |
+---------------------------------+
| |
+---------------------------------+
1 row in set
除了特定於MySQL的語法之外,可以使用SQL標準語法與FROM
關鍵字一起呼叫SUBSTRING
函式。
例如,以下語句使用SQL標準語法從"MySQL SUBSTRING"
字串中獲取"SUBSTRING"
:
mysql> SELECT SUBSTRING('MySQL SUBSTRING' FROM -10);
+---------------------------------------+
| SUBSTRING('MySQL SUBSTRING' FROM -10) |
+---------------------------------------+
| SUBSTRING |
+---------------------------------------+
1 row in set
如果要指定要從字串中提取的子字串的長度,可以使用以下形式的SUBSTRING
函式:
SUBSTRING(string,position,length);
以下是上述語句的SQL標準版本,它更長,但更具表現力。
SUBSTRING(string FROM position FOR length);
除了string
和position
引數之外,SUBSTRING
函式還有一個額外的length
引數。length
是一個正整數,用於指定子字串的字元數。
如果position
和length
的總和大於字串的字元數,則SUBSTRING
函式將返回一個從位置開始到字串末尾的子串。
例如,要從"MySQL SUBSTRING"
獲取"MySQL"
,請使用以下語句:
mysql> SELECT SUBSTRING('MySQL SUBSTRING',1,5);
+----------------------------------+
| SUBSTRING('MySQL SUBSTRING',1,5) |
+----------------------------------+
| MySQL |
+----------------------------------+
1 row in set
又或者 -
mysql> SELECT SUBSTRING('MySQL SUBSTRING' FROM 1 FOR 5);
+-------------------------------------------+
| SUBSTRING('MySQL SUBSTRING' FROM 1 FOR 5) |
+-------------------------------------------+
| MySQL |
+-------------------------------------------+
1 row in set
或者使用FROM FOR
語法:
mysql> SELECT SUBSTRING('MySQL SUBSTRING' FROM -15 FOR 5);
+---------------------------------------------+
| SUBSTRING('MySQL SUBSTRING' FROM -15 FOR 5) |
+---------------------------------------------+
| MySQL |
+---------------------------------------------+
1 row in set
SUBSTR()
函式是SUBSTRING()
函式的同義詞,所以可以互換使用它們。
在本教學中,您已經了解了和使用SUBSTRING()
函式從指定位置開始的字串中提取具有給定長度的子字串。