MySQL常见的字符串函数
整理自官档。
1.1 SUBSTR or SUBSTRING
SUBSTR(str,pos), SUBSTR(str FROM pos),SUBSTR(str,pos,len), SUBSTR(str FROM
pos FOR len)
SUBSTR() is a synonym for SUBSTRING().
SUBSTRING(str,pos), SUBSTRING(str FROM pos),SUBSTRING(str,pos,len),
SUBSTRING(str FROM pos FOR len)
The forms without a len argument return asubstring from string str starting at position pos.
The forms with a len argument return asubstring len characters long from string str, starting at
position pos. The forms that use FROM arestandard SQL syntax. It is also possible to use a negative
value for pos. In this case, the beginningof the substring is pos characters from the end of the
string, rather than the beginning. Anegative value may be used for pos in any of the forms of this
function.
For all forms of SUBSTRING(), the positionof the first character in the string from which the
substring is to be extracted is reckoned as1.
mysql> SELECTSUBSTRING(‘Quadratically‘,5);
-> ‘ratically‘
mysql> SELECT SUBSTRING(‘foobarbar‘ FROM4);
-> ‘barbar‘
mysql> SELECTSUBSTRING(‘Quadratically‘,5,6);
-> ‘ratica‘
mysql> SELECT SUBSTRING(‘Sakila‘, -3);
-> ‘ila‘
mysql> SELECT SUBSTRING(‘Sakila‘, -5,3);
-> ‘aki‘
mysql> SELECT SUBSTRING(‘Sakila‘ FROM -4FOR 2);
-> ‘ki‘
This function is multibyte safe.
If len is less than 1,the result is the empty string.
1.2 SUBSTRING_INDEX
SUBSTRING_INDEX(str,delim,count)
Returns the substring from string strbefore count occurrences of the delimiter delim. If count
is positive, everything to the left of thefinal delimiter (counting from the left) is returned. If count
is negative, everything to the right of thefinal delimiter (counting from the right) is returned.
SUBSTRING_INDEX() performs a case-sensitivematch when searching for delim.
mysql> SELECTSUBSTRING_INDEX(‘www.mysql.com‘, ‘.‘, 2);
-> ‘www.mysql‘
mysql> SELECTSUBSTRING_INDEX(‘www.mysql.com‘, ‘.‘, -2);
-> ‘mysql.com‘
This function is multibyte safe.
1.3 CHAR_LENGTH
CHAR_LENGTH(str) 返回字符数
Returns the length of the string str,measured in characters. A multibyte character counts as a
single character. This means that for astring containing five 2-byte characters, LENGTH() returns
10, whereas CHAR_LENGTH() returns 5.
1.4 LENGTH
LENGTH(str) 返回字节数
Returns the length of the string str,measured in bytes. A multibyte character counts as multiple
bytes. This means that for a stringcontaining five 2-byte characters, LENGTH() returns 10, whereas
CHAR_LENGTH() returns 5.
mysql> SELECT LENGTH(‘text‘);