- 一、字符串比较函数和运算符
- ASCII(str)">ASCII(str)
- ORD(str)">ORD(str)
- BIN(N)">BIN(N)
- BIT_LENGTH(str)">BIT_LENGTH(str)
- CONCAT(str1,str2,…)">CONCAT(str1,str2,…)
- CONCAT_WS(separator,str1,str2,…)">CONCAT_WS(separator,str1,str2,…)
- FIELD(str,str1,str2,str3,…)">FIELD(str,str1,str2,str3,…)
- LENGTH(str)">LENGTH(str)
- LOWER(str) / UPPER()">LOWER(str) / UPPER()
- LPAD(str,len,padstr)">LPAD(str,len,padstr)
- LTRIM(str)">LTRIM(str)
- OCT(N)">OCT(N)
- REPEAT(str,count)">REPEAT(str,count)
- REPLACE(str,from_str,to_str)">REPLACE(str,from_str,to_str)
- REVERSE(str)">REVERSE(str)
- RIGHT(str,len)">RIGHT(str,len)
- RPAD(str,len,padstr)">RPAD(str,len,padstr)
- RTRIM(str)">RTRIM(str)
- SUBSTRING(str,pos) / SUBSTR(str,pos)">SUBSTRING(str,pos) / SUBSTR(str,pos)
一、字符串比较函数和运算符
| 函数名称 | 函数说明 |
|---|---|
| ASCII() | Return numeric value of left-most character |
| BIN() | Return a string containing binary representation of a number |
| BIT_LENGTH() | Return length of argument in bits |
| CHAR() | Return the character for each integer passed |
| CHAR_LENGTH() | Return number of characters in argument |
| CHARACTER_LENGTH() | Synonym for CHAR_LENGTH() |
| CONCAT() | Return concatenated string |
| CONCAT_WS() | Return concatenate with separator |
| ELT() | Return string at index number |
| EXPORT_SET() | Return a string such that for every bit set in the value bits, you get an on string and for every unset bit, you get an off string |
| FIELD() | Index (position) of first argument in subsequent arguments |
| FIND_IN_SET() | Index (position) of first argument within second argument |
| FORMAT() | Return a number formatted to specified number of decimal places |
| FROM_BASE64() | Decode base64 encoded string and return result |
| HEX() | Hexadecimal representation of decimal or string value |
| INSERT() | Insert substring at specified position up to specified number of characters |
| INSTR() | Return the index of the first occurrence of substring |
| LCASE() | Synonym for LOWER() |
| LEFT() | Return the leftmost number of characters as specified |
| LENGTH() | Return the length of a string in bytes |
| LIKE | Simple pattern matching |
| LOAD_FILE() | Load the named file |
| LOCATE() | Return the position of the first occurrence of substring |
| LOWER() | Return the argument in lowercase |
| LPAD() | Return the string argument, left-padded with the specified string |
| LTRIM() | Remove leading spaces |
| MAKE_SET() | Return a set of comma-separated strings that have the corresponding bit in bits set |
| MATCH() | Perform full-text search |
| MID() | Return a substring starting from the specified position |
| NOT LIKE | Negation of simple pattern matching |
| NOT REGEXP | Negation of REGEXP |
| OCT() | Return a string containing octal representation of a number |
| OCTET_LENGTH() | Synonym for LENGTH() |
| ORD() | Return character code for leftmost character of the argument |
| POSITION() | Synonym for LOCATE() |
| QUOTE() | Escape the argument for use in an SQL statement |
| REGEXP | Whether string matches regular expression |
| REPEAT() | Repeat a string the specified number of times |
| REPLACE() | Replace occurrences of a specified string |
| REVERSE() | Reverse the characters in a string |
| RIGHT() | Return the specified rightmost number of characters |
| RLIKE | Whether string matches regular expression |
| RPAD() | Append string the specified number of times |
| RTRIM() | Remove trailing spaces |
| SOUNDEX() | Return a soundex string |
| SOUNDS LIKE | Compare sounds |
| SPACE() | Return a string of the specified number of spaces |
| STRCMP() | Compare two strings |
| SUBSTR() | Return the substring as specified |
| SUBSTRING() | Return the substring as specified |
| SUBSTRING_INDEX() | Return a substring from a string before the specified number of occurrences of the delimiter |
| TO_BASE64() | Return the argument converted to a base-64 string |
| TRIM() | Remove leading and trailing spaces |
| UCASE() | Synonym for UPPER() |
| UNHEX() | Return a string containing hex representation of a number |
| UPPER() | Convert to uppercase |
| WEIGHT_STRING() | Return the weight string for a string |
ASCII(str)
返回字符串 str 最左边字符的数值。如果 str 为空字符串,则返回0。如果 str 为 NULL,则返回 NULL。ASCII ()适用于8位字符。
mysql> SELECT ASCII('2');-> 50mysql> SELECT ASCII(2);-> 50mysql> SELECT ASCII('dx');-> 100
ORD(str)
如果字符串 str 的最左边的字符是一个多字节字符,返回该字符的代码,使用以下公式从其组成字节的数值中计算:
(1st byte code)+ (2nd byte code * 256)+ (3rd byte code * 256^2) ...
如果最左边的字符不是多字节字符,ORD ()将返回与 ASCII ()函数相同的值。
mysql> SELECT ORD('2');-> 50
BIN(N)
返回二进制值 n 的字符串表示形式,其中 n 是 BIGINT。这相当于 CONV (n,10,2) 。如果 n 为 NULL,则返回 NULL。
mysql> SELECT BIN(12);-> '1100'
BIT_LENGTH(str)
返回以位为单位的字符串 str 长度。
mysql> SELECT BIT_LENGTH('text');-> 32
CONCAT(str1,str2,…)
返回连接参数后产生的字符串。可能有一个或多个参数。如果所有参数都是非二进制字符串,则结果为非二进制字符串。如果参数包含任何二进制字符串,则结果为二进制字符串。数值参数被转换为其等效的非二进制字符串形式。如果任何参数为 NULL,CONCAT ()返回 NULL。
mysql> SELECT CONCAT('My', 'S', 'QL');-> 'MySQL'mysql> SELECT CONCAT('My', NULL, 'QL');-> NULLmysql> SELECT CONCAT(14.3);-> '14.3'
对于带引号的字符串,可以通过将字符串相邻放置来执行连接:
mysql> SELECT 'My' 'S' 'QL';-> 'MySQL'
如果从 mysql 客户端中调用 CONCAT () ,则根据 — binary-as-hex 的值,使用十六进制表示法显示二进制字符串结果。有关该选项的详细信息,请参阅第4.5.1节“ MySQL ー MySQL 命令行客户端”。
CONCAT_WS(separator,str1,str2,…)
CONCAT_WS() 代表 CONCAT 和 Separator,是 CONCAT ()的一种特殊形式。第一个参数是其余参数的分隔符。将在要连接的字符串之间添加分隔符。分隔符可以是字符串,其余的参数也可以是字符串。如果分隔符为 NULL,则结果为 NULL。
该函数不会跳过空字符串,但是会跳过分隔符参数后面的任何 NULL 值。
mysql> SELECT CONCAT_WS(',','First name','Second name','Last Name');-> 'First name,Second name,Last Name'mysql> SELECT CONCAT_WS(',','First name',NULL,'Last Name');-> 'First name,Last Name'
FIELD(str,str1,str2,str3,…)
返回 str1,str2,str3,… 列表中 str 的索引(位置)。如果没有找到 str,返回0。
如果 FIELD ()的所有参数都是字符串,则将所有参数作为字符串进行比较。如果所有的参数都是数字,那么它们就被当作数字进行比较。否则,这些参数将被比作 double。
如果 str 为 NULL,则返回值为0,因为 NULL 不能与任何值进行相等比较。FIELD ()是 ELT ()的补充。
mysql> SELECT FIELD('Bb', 'Aa', 'Bb', 'Cc', 'Dd', 'Ff');-> 2mysql> SELECT FIELD('Gg', 'Aa', 'Bb', 'Cc', 'Dd', 'Ff');-> 0
LENGTH(str)
返回字符串 str 的长度(以字节为单位)。多字节字符计数为多个字节。这意味着对于包含5个2字节字符的字符串,LENGTH ()返回10,而 CHAR _ LENGTH ()返回5。
mysql> SELECT LENGTH('text');-> 4
LOWER(str) / UPPER()
返回根据当前字符集映射将所有字符更改为小写的字符串 str。默认值是 latin1(cp1252 West European)。
mysql> SELECT LOWER('QUADRATICALLY');-> 'quadratically'mysql> SELECT UPPER('Hej');-> 'HEJ'
LOWER ()(和 UPPER())在应用于二进制字符串(BINARY,VARBINARY,BLOB)时无效。要对二进制字符串执行字母大小写转换,首先使用适合存储在字符串中的数据的字符集将其转换为非二进制字符串:
mysql> SET @str = BINARY 'New York';mysql> SELECT LOWER(@str), LOWER(CONVERT(@str USING latin1));+-------------+-----------------------------------+| LOWER(@str) | LOWER(CONVERT(@str USING latin1)) |+-------------+-----------------------------------+| New York | new york |+-------------+-----------------------------------+
对于 Unicode字符集的排序规则,LOWER ()和 UPPER ()根据排序规则名称中的 Unicode 排序规则算法(UCA)版本工作,如果有的话,如果没有指定版本,则为 UCA 4.0.0。例如,utf8 unicode 520 ci 根据 UCA 5.2.0工作,而 utf8 unicode ci 根据 UCA 4.0.0工作。参见第10.10.1节,《 Unicode字符集》
在以前版本的 MySQL 中,在存储视图定义时,视图中使用的 LOWER ()被重写为 LCASE ()。在 MySQL 5.7中,LOWER ()在这种情况下不会被重写,但是在视图中使用的 LCASE ()会被重写为 LOWER ()。(Bug # 12844279)
LPAD(str,len,padstr)
返回用字符串 padstr 填充的字符串 str,其长度为 len 字符。如果 str 长于 len,则返回值缩短为 len 字符。
mysql> SELECT LPAD('hi',4,'??');-> '??hi'mysql> SELECT LPAD('hi',1,'??');-> 'h'
LTRIM(str)
删除 str 字符串前的空格,并返回处理后的字符串。
mysql> SELECT LTRIM(' barbar');
-> 'barbar'
OCT(N)
返回 n 的八进制值的字符串表示形式,其中 n 是BIGINT型的数字。这相当于 CONV (n,10,8) 。如果 n 为 NULL,则返回 NULL。
mysql> SELECT OCT(12);
-> '14'
REPEAT(str,count)
返回一个包含字符串 str 重复计数次数的字符串。如果 count 小于1,返回一个空字符串。如果 str 或 count 为 NULL,则返回 NULL。
mysql> SELECT REPEAT('MySQL', 3);
-> 'MySQLMySQLMySQL'
REPLACE(str,from_str,to_str)
返回字符串 str,其中所有匹配的字符串从 str 被替换为 str。REPLACE ()在搜索 from _ str 时执行区分大小写的匹配。
mysql> SELECT REPLACE('www.mysql.com', 'w', 'Ww');
-> 'WwWwWw.mysql.com'
REVERSE(str)
返回字符顺序颠倒的字符串 str。
mysql> SELECT REVERSE('abc');
-> 'cba'
RIGHT(str,len)
返回字符串 str 中最右边的 len 个字符,如果参数为 NULL,则返回 NULL。
mysql> SELECT RIGHT('foobarbar', 4);
-> 'rbar'
RPAD(str,len,padstr)
返回用字符串 padstr 填充的字符串 str 的长度为 len 字符。如果 str 长于 len,则返回值缩短为 len 字符。
mysql> SELECT RPAD('hi',5,'?');
-> 'hi???'
mysql> SELECT RPAD('hi',1,'?');
-> 'h'
RTRIM(str)
删除字符串右边的空格。
mysql> SELECT RTRIM('barbar ');
-> 'barbar'
SUBSTRING(str,pos) / SUBSTR(str,pos)
字符串截取。
同类函数:
- SUBSTRING(str FROM pos) / SUBSTR(str FROM pos),
- SUBSTRING(str,pos,len) / SUBSTR(str,pos,len),
- SUBSTRING(str FROM pos FOR len) / SUBSTR(str FROM pos FOR len)
mysql> SELECT SUBSTRING('Quadratically',5); -> 'ratically' mysql> SELECT SUBSTRING('foobarbar' FROM 4); -> 'barbar' mysql> SELECT SUBSTRING('Quadratically',5,6); -> 'ratica' mysql> SELECT SUBSTRING('Sakila', -3); -> 'ila' mysql> SELECT SUBSTRING('Sakila', -5, 3); -> 'aki' mysql> SELECT SUBSTRING('Sakila' FROM -4 FOR 2); -> 'ki'
