MySQL中字符串函数使用

来源:互联网 发布:今天淘宝网怎么打不开 编辑:程序博客网 时间:2024/06/05 10:48
1:CHAR_LENGTH(str) 
返回值为字符串str 的长度,长度的单位为字符。一个多字节字符算作一个单字符。对于一个包含五个二字节字符集,LENGTH()返回值为 10, 而CHAR_LENGTH()的返回值为5。 
2:FORMAT(X,D)
将number X设置为格式 '#,###,###.##', 以四舍五入的方式保留到小数点后D位,而返回结果为一个字符串。
select FORMAT(1234.56789,2);结构1234.57
3:INSERT(str,pos,len,newstr) 
返回字符串 str, 其子字符串起始于 pos 位置和长期被字符串 newstr取代的len 字符。 如果pos超过字符串长度,则返回值为原始字符串。假如len的长度大于其它字符串的长度,则从位置pos开始替换。若任何一个参数为null,则返回值为NULL。 

SELECT INSERT('xiaobai is a dog',14,3,'cat');结果为:xiaobai is acat
4:INSTR(str,substr) 
返回字符串 str 中子字符串的第一个出现位置。这和LOCATE()的双参数形式相同,除非参数的顺序被颠倒。 

mysql> SELECT INSTR('foobarbar', 'bar');

       -> 4

mysql> SELECT INSTR('xbar', 'foobar');

       -> 0

这个函数支持多字节字元,并且只有当至少有一个参数是二进制字符串时区分大小写。 

5:LEFT(str,len)

返回从字符串str 开始的len 最左字符。 

mysql> SELECT LEFT('foobarbar', 5);

       -> 'fooba'
6:LENGTH(str) 

返回值为字符串str 的长度,单位为字节。一个多字节字符算作多字节。这意味着 对于一个包含5个2字节字符的字符串,LENGTH() 的返回值为 10, 而 CHAR_LENGTH()的返回值则为5。

mysql> SELECT LENGTH('text');

       -> 4
7:RTRIM(str) 
返回字符串 str ,结尾空格字符被删去。 

mysql> SELECT RTRIM('barbar   ');

       -> 'barbar'

这个函数支持多字节字元。

8:SUBSTRING_INDEX(str,delim,count) 

在定界符 delim 以及count出现前,从字符串str返回自字符串。若count为正值,则返回最终定界符(从左边开始)左边的一切内容。若count为负值,则返回定界符(从右边开始)右边的一切内容。

mysql> SELECT SUBSTRING_INDEX('www.mysql.com', '.',2);

       -> 'www.mysql'

mysql> SELECT SUBSTRING_INDEX('www.mysql.com', '.',-2);

       -> 'mysql.com'

这个函数支持多字节字元

9:TRIM([{BOTH | LEADING | TRAILING} [remstr] FROM] str)TRIM(remstr FROM] str) 
返回字符串 str , 其中所有remstr前缀和/或后缀都已被删除。若分类符BOTH、LEADIN或TRAILING中没有一个是给定的,则假设为BOTH 。 remstr为可选项,在未指定情况下,可删除空格。

mysql> SELECT TRIM('  bar  ');

       -> 'bar'

mysql> SELECT TRIM(LEADING 'x' FROM 'xxxbarxxx');

       -> 'barxxx'

mysql> SELECT TRIM(BOTH 'x' FROM 'xxxbarxxx');

       -> 'bar'

mysql> SELECT TRIM(TRAILING 'xyz' FROM 'barxxyz');

       -> 'barx'

这个函数支持多字节字元。 
10.STRCMP(expr1,expr2) 
若所有的字符串均相同,则返回STRCMP(),若根据当前分类次序,第一个参数小于第二个,则返回 -1,其它情况返回 1 。

mysql> SELECT STRCMP('text', 'text2');

       -> -1

mysql> SELECT STRCMP('text2', 'text');

       -> 1

mysql> SELECT STRCMP('text', 'text');

       -> 0

在执行比较时,STRCMP()使用当前字符集。这使得默认的比较区分大小写,当操作数中的一个或两个都是二进制字符串时除外。

11:CONCAT(str1,str2,...)                    
返回结果为连接参数产生的字符串。如有任何一个参数为NULL ,则返回值为NULL。或许有一个或多个参数。如果所有参数均为非二进制字符串,则结果为非二进制字符串。如果自变量中含有任一二进制字符串,则结果为一个二进制字符串。一个数字参数被转化为与之相等的二进制字符串格式;若要避免这种情况,可使用显式类型cast, 例如: SELECT CONCAT(CAST(int_col AS CHAR),char_col) 

mysql> SELECT CONCAT('My', 'S', 'QL');

       -> 'MySQL'

mysql> SELECT CONCAT('My', NULL, 'QL');

       -> NULL

mysql> SELECT CONCAT(14.3);

       -> '14.3'



0 0
原创粉丝点击