ASCII(str)
返回str字符串中最左边字符的ascii码值,如果是空串则返回0,如果str是null则返回null
1 2 3 4 5 6 7 |
• mysql> SELECT ASCII( 'a' );
• -> 97
• mysql> SELECT ASCII( 'b' );
• -> 98
• mysql> SELECT ASCII( 'ab' );
• -> 97
只返回第一个字符的ASCII码
|
字符串比较大小的时候就是根据ASCII 比较大小
CHAR(N,… [USING charset_name])
将括号中的N转化成ascii码对应的字符,返回这些字符组成的字符串,其中的null会被忽略
1 2 3 4 5 6 7 8 9 10 |
• mysql> SELECT CHAR(77,121,83,81, '76' );
• -> 'MySQL'
• mysql> SELECT CHAR(77,77.3, '77.3' );
• -> 'MMM‘
• mysql> SELECT CHARSET(CHAR(X '65' )), CHARSET(CHAR(X '65' USING utf8));
• +----------------------+---------------------------------+
• | CHARSET(CHAR(X '65' )) | CHARSET(CHAR(X '65' USING utf8)) |
• +----------------------+---------------------------------+
• | binary | utf8 |
• +----------------------+---------------------------------+
|
CHAR_LENGTH(str)
返回字符串的字符长度
1 2 3 4 5 6 7 |
mysql> select char_length( 'asdf' );
>4
mysql>
mysql> select char_length(4567);
>4
|
CONCAT(str1,str2,…)
• 返回括号里所有参数字符串连接在一起,当其中有参数为NULL时则返回NULL
1 2 3 4 5 6 |
• mysql> SELECT CONCAT( 'My' , 'S' , 'QL' );
• -> 'MySQL'
• mysql> SELECT CONCAT( 'My' , NULL, 'QL' );
• -> NULL
• mysql> SELECT CONCAT(14.3);
• -> '14.3'
|
INSERT(str,pos,len,newstr)
• 将str中从pos位置开始后的len个字符替换成newstr字符串(从哪个位置开始,替换多少个字符)
1 2 3 4 5 6 |
• mysql> SELECT INSERT( 'Quadratic' , 3, 4, 'What' ); # 从第三个位置开始替换4个字符
• -> 'QuWhattic'
• mysql> SELECT INSERT( 'Quadratic' , -1, 4, 'What' ); #如果有负数则不替换
• -> 'Quadratic'
• mysql> SELECT INSERT( 'Quadratic' , 3, 100, 'What' );
• -> 'QuWhat'
|
INSTR(str,substr)
• 返回str字符串中第一个出现substr字符串的位置,如果没出现则返回为0
1 2 3 4 |
• mysql> SELECT INSTR( 'foobarbar' , 'bar' );
• -> 4
• mysql> SELECT INSTR( 'xbar' , 'foobar' );
• -> 0
|
LEFT(str,len)
• 返回str字符串中从左边开始的len个长度的字符
1 2 |
• mysql> SELECT LEFT( 'foobarbar' , 5);
• -> 'fooba‘
|
LOAD_FILE(file_name)
• 读取文件且返回文件内容为字符串
LOCATE(substr,str)
• 返回str字符串中第一次出现substr字符串的位置,如果没有则返回null
1 2 3 4 |
• mysql> SELECT LOCATE( 'bar' , 'foobarbar' );
• -> 4
• mysql> SELECT LOCATE( 'xbar' , 'foobar' );
• -> 0
|
LOWER(str)
• 返回将str字符串中所有字符变换成小写后的字符串,但对二进制文本无效
1 2 3 4 5 6 7 8 9 |
• mysql> SELECT LOWER( 'QUADRATICALLY' );
• -> 'quadratically'
• 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 |
+-------------+-----------------------------------+
|
LPAD(str,len,padstr)
• 将str的左边补充为padstr,直到补充成len长度的字符串并返回;如果str的长度
比len长,则返回str中最左边开始的len长度的字符
1 2 3 4 |
• mysql> SELECT LPAD( 'hi' ,4, '??' );
• -> '??hi'
• mysql> SELECT LPAD( 'hi' ,1, '??' );
• -> 'h‘
|
LTRIM(str)
• 将str最左边的空格去掉并返回
1 2 |
• mysql> SELECT LTRIM( ' barbar' );
• -> 'barbar‘
|
RTRIM(str)
• 将str最右边的空格去掉并返回
REPEAT(str,count)
• 将str重复count并组合成字符串返回,如果count<1,则返回空串
1 2 |
• mysql> SELECT REPEAT( 'MySQL' , 3);
• -> 'MySQLMySQLMySQL'
|
REPLACE(str,from_str,to_str)
• 将所有str字符串中匹配from_str子串的地方都替换成to_str子字符串
1 2 |
• mysql> SELECT REPLACE( 'www.mysql.com' , 'w' , 'Ww' );
• -> 'WwWwWw.mysql.com‘
|
REVERSE(str)
• 将str字符串中的字符按照倒序组合并返回
1 2 |
• mysql> SELECT REVERSE( 'abc' );
• -> 'cba‘
|
RIGHT(str,len)
• 将str字符串中从右边开始的len个字符返回
1 2 |
• mysql> SELECT RIGHT( 'foobarbar' , 4);
• -> 'rbar'
|
RPAD(str,len,padstr)
• 将字符串str从右边开始补充为padstr直到整体长度为len,如果str的长度本身大
于len,则返回str中len长度的字符串
1 2 3 4 |
• mysql> SELECT RPAD( 'hi' ,5, '?' );
• -> 'hi???'
• mysql> SELECT RPAD( 'hi' ,1, '?' );
• -> 'h‘
|
RTRIM(str)
• 将字符串str右边的空格去掉并返回
1 2 |
• mysql> SELECT RTRIM( 'barbar ' );
• -> 'barbar‘
|
SPACE(N)
• 返回N个长度的空格组成的空字符串
1 2 |
• mysql> SELECT SPACE(6);
• -> ' '
|
SUBSTR(str,pos), SUBSTR(str FROM pos), SUBSTR(str,pos,len), SUBSTR(str FROM
pos FOR len)
SUBSTRING(str,pos), SUBSTRING(str FROM pos), SUBSTRING(str,pos,len),
SUBSTRING(str FROM pos FOR len)
• 如果没有len参数,则返回从pos位置开始的str中的子字符串;如果有len参数,则从pos
位置开始返回str中长度为len的子字符串;如果pos为负值,则代表pos从右边开始数
from 和 逗号 一样的效果
SUBSTRING_INDEX(str,delim,count)
delimit 定界
当count为正数,则返回delim出现在str字符串中第count次之前的子字符
串,如果是负数,则从右边开始计算
1 2 3 4 |
• mysql> SELECT SUBSTRING_INDEX( 'www.mysql.com' , '.' , 2);
• -> 'www.mysql'
• mysql> SELECT SUBSTRING_INDEX( 'www.mysql.com' , '.' , -2);
• -> 'mysql.com‘
|
UPPER(str)
• 返回将str字符串中所有字符转换成大写的字符串
1 2 |
• mysql> SELECT UPPER( 'Hej' );
• -> 'HEJ‘
|
字符串对比函数
主要有LIKE , NOT LIKE ,STRCMP
LIKE
expr LIKE pat [ESCAPE ‘escape_char’]
• 通配符%
表示匹配0个或多个字符
• 通配符_
表示匹配1个字符
1 2 3 4 5 6 7 8 9 10 11 12 |
• mysql> SELECT 'David!' LIKE 'David_' ;
• -> 1 #返回的结果是1 或则 0 也就是 true 或则 false
• mysql> SELECT 'David!' LIKE '%D%v%' ;
• -> 1
• 当匹配字符中有特殊字符时,可以用 \或者escape来指定特殊字符为字符
• mysql> SELECT 'David!' LIKE 'David\_' ;
• -> 0
• mysql> SELECT 'David_' LIKE 'David\_' ;
• -> 1
• mysql> SELECT 'David_' LIKE 'David|_' ESCAPE '|' ;
• -> 1
|
NOT LIKE
expr NOT LIKE pat [ESCAPE ‘escape_char’]
• 是上一个字符串对比函数的反义
STRCMP
STRCMP(expr1,expr2)
• 当expr1等于expr2时等于0,当expr1小于expr2时为-1,反之为1
1 2 3 4 5 6 |
• mysql> SELECT STRCMP( 'text' , 'text2' );
• -> -1
• mysql> SELECT STRCMP( 'text2' , 'text' );
• -> 1
• mysql> SELECT STRCMP( 'text' , 'text' );
• -> 0
|
标签:返回,MySQL,len,详解,str,mysql,字符串,SELECT From: https://www.cnblogs.com/ataoxz/p/18688612