mysql数据库常用字符串函数


一、字符串函数详解

1、ascii(str)
返回值为字符串str 的最左字符的数值,即取得最左字符的ascii码。假如str为空字符串,则返回值为 0 。假如str 为null,则返回值为 null。
在这里插入图片描述
2、bin(n)
返回值为n的二进制值的字符串表示,即转为二进制。其中n为一个longlong(bigint) 数字。这等同于conv(n,10,2)。假如n为null,则返回值为null。
在这里插入图片描述
3、bit_length(str)
返回值为二进制的字符串str 长度。
在这里插入图片描述
4、char(n,… [using charset])
char()将每个参数n理解为一个整数,其返回值为一个包含这些整数的代码值所给出的字符的字符串。null值被省略。即将所有参数转为字符后连接在一起。
在这里插入图片描述
5、char_length(str)
返回值为字符串str 的长度,长度的单位为字符。
在这里插入图片描述
6、concat(str1,str2,…)
返回结果为连接参数产生的字符串。
在这里插入图片描述

7、concat_ws(separator,str1,str2,…)
concat_ws() 代表 concat with separator ,是concat()的特殊形式。第一个参数是其它参数的分隔符。分隔符的位置放在要连接的两个字符串之间。分隔符可以是一个字符串,也可以是其它参数。如果分隔符为 null,则结果为 null。函数会忽略任何分隔符参数后的 null 值。
在这里插入图片描述
8、elt(n,str1,str2,str3,…)
若n=1,则返回值为str1若n=2,则返回值为 str2 ,以此类推。若n小于1或大于参数的数目,则返回值为 null 。
在这里插入图片描述

9、field(str,str1,str2,str3,…)
返回值为str1, str2, str3,……列表中的str指数(位置)。在找不到str的情况下,返回值为0。如果所有对field()的参数均为字符串,则所有参数均按照字符串进行比较。如果所有的参数均为数字,则按照数字进行比较。否则,参数按照双倍进行比较。
在这里插入图片描述

10、find_in_set(str,strlist)
假如字符串str在由n子链组成的字符串列表strlist中,则返回值的范围在1到n之间(即str在strlist中的位置)。一个字符串列表就是一个由一些被‘,'符号分开的自链组成的字符串。
在这里插入图片描述

11、insert(str,pos,len,newstr)
返回字符串 str, 其子字符串起始于 pos 位置和长期被字符串 newstr取代的len 字符。
如果pos 超过字符串长度,则返回值为原始字符串。假如len的长度大于其它字符串的长度,则从位置pos开始替换。若任何一个参数为null,则返回值为null。
在这里插入图片描述

12、instr(str,substr)
返回字符串 str 中子字符串的第一个出现位置。这和locate()的双参数形式相同,除非参数的顺序被颠倒。

在这里插入图片描述
13、lcase(str)
lcase() 是 lower()的同义词。
在这里插入图片描述

14、left(str,len)
返回从字符串str 开始的len 最左字符。
在这里插入图片描述

15、length(str)
返回值为字符串str 的长度,单位为字节。一个多字节字符算作多字节。
在这里插入图片描述

16、load_file(file_name)
读取文件并将这一文件按照字符串的格式返回。
在这里插入图片描述

17、locate(substr,str) , locate(substr,str,pos)
第一个语法返回字符串 str中子字符串substr的第一个出现位置。
第二个语法返回字符串 str中子字符串substr的第一个出现位置, 起始位置在pos。如若substr 不在str中,则返回值为0。
在这里插入图片描述

18、lower(str)
返回字符串str以及所有根据最新的字符集映射表变为小写字母的字符。
在这里插入图片描述

19、lpad(str,len,padstr)
返回字符串 str, 其左边由字符串padstr 填补到len 字符长度。假如str 的长度大于len, 则返回值被缩短至 len 字符。即在str前面添加长度为len的padstr。
在这里插入图片描述

20、ltrim(str)
返回字符串 str ,其引导空格字符被删除。

在这里插入图片描述

21、mid(str,pos,len)
mid(str,pos,len) 是 substring(str,pos,len)的同义词,截取字符串功能。
在这里插入图片描述

22、octet_length(str)
octet_length() 是 length()的同义词。

在这里插入图片描述

23、position(substr in str)
position(substr in str)是locate(substr,str)同义词。

在这里插入图片描述

24、repeat(str,count)
返回一个由重复的字符串str 组成的字符串,字符串str的数目等于count 。
若 count <= 0,则返回一个空字符串。若str或count为null,则返回null 。
在这里插入图片描述

25、replace(str,from_str,to_str)
返回字符串str 以及所有被字符串to_str替代的字符串from_str 。
在这里插入图片描述

26、reverse(str)
返回字符串 str ,顺序和字符顺序相反。
在这里插入图片描述

27、right(str,len)
从字符串str 开始,返回最右len 字符。
在这里插入图片描述

28、rpad(str,len,padstr)
返回字符串str, 其右边被字符串 padstr填补至len 字符长度。
假如字符串str 的长度大于 len,则返回值被缩短到与 len 字符相同长度。
在这里插入图片描述

29、rtrim(str)
返回字符串str,结尾空格字符被删去。
在这里插入图片描述

30、soundex(str)
从str返回一个soundex字符串。
在这里插入图片描述

31、space(n)
返回一个由n间隔符号组成的字符串。
在这里插入图片描述

32、substring(str,pos)
变形用法如下:
substring(str from pos)
substring(str,pos,len)
substring(str from pos for len)
substr()是 substring()的同义词。
不带有len 参数的格式从字符串str返回一个子字符串,起始于位置 pos。带有len参数的格式从字符串str返回一个长度同len字符相同的子字符串,起始于位置 pos。使用 from的格式为标准 sql 语法。也可能对pos使用一个负值。假若这样,则子字符串的位置起始于字符串结尾的pos 字符,而不是字符串的开头位置。
在这里插入图片描述

33、substring_index(str,delim,count)
在定界符 delim 以及count 出现前,从字符串str返回自字符串。若count为正值,则返回最终定界符(从左边开始)左边的一切内容。若count为负值,则返回定界符(从右边开始)右边的一切内容。
在这里插入图片描述

34、trim([{both | leading | trailing} [remstr] from] str) trim(remstr from] str)
返回字符串 str , 其中所有remstr 前缀和/或后缀都已被删除。若分类符both、leadin或trailing中没有一个是给定的,则假设为both 。 remstr 为可选项,在未指定情况下,可删除空格。
在这里插入图片描述

35、ucase(str)
ucase()是upper()的同义词。
在这里插入图片描述

36、upper(str)
返回字符串str,以及根据最新字符集映射转化为大写字母的字符。
在这里插入图片描述

37、模式匹配
通配符
%:匹配任何数目的字符,甚至包括零字符
_:只能匹配一种字符
转义用” /
38、strcmp(expr1,expr2)
若所有的字符串均相同,则返回0,若根据当前分类次序,第一个参数小于第二个,则返回 -1,其它情况返回 1 。
在这里插入图片描述

二、文档下载地址

word文档下载:mysql数据库常用字符串函数

MySQL中concat函数 使用方法: CONCAT(str1,str2,…) 返回结果为连接参数产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL。 注意: 如果所有参数均为非二进制字符串,则结果为非二进制字符串。 如果自变量中含有任一二进制字符串,则结果为一个二进制字符串。 一个数字参数被转化为与之相等的二进制字符串格式;若要避免这种情况,可使用显式类型 cast, 例如: SELECT CONCAT(CAST(int_col AS CHAR), char_col) MySQL的concat函数可以连接一个或者多个字符串,如 mysql> select concat('10'); +--------------+ | concat('10') | +--------------+ | 10 | +--------------+ 1 row in set (0.00 sec) mysql> select concat('11','22','33'); +------------------------+ | concat('11','22','33') | +------------------------+ | 112233 | +------------------------+ 1 row in set (0.00 sec) MySQL的concat函数在连接字符串的时候,只要其中一个是NULL,那么将返回NULL mysql> select concat('11','22',null); +------------------------+ | concat('11','22',null) | +------------------------+ | NULL | +------------------------+ 1 row in set (0.00 sec) MySQL中concat_ws函数 使用方法: CONCAT_WS(separator,str1,str2,...) CONCAT_WS() 代表 CONCAT With Separator ,是CONCAT()的特殊形式。第一个参数是其它参数的分隔符。分隔符的位置放在要连接的两个字符串之间。分隔符可以是一个字符串,也可以是其它参数。 注意: 如果分隔符为 NULL,则结果为 NULL。函数会忽略任何分隔符参数后的 NULL 值。 如连接后以逗号分隔 mysql> select concat_ws(',','11','22','33'); +-------------------------------+ | concat_ws(',','11','22','33') | +-------------------------------+ | 11,22,33 | +-------------------------------+ 1 row in set (0.00 sec) 和MySQL中concat函数不同的是, concat_ws函数在执行的时候,不会因为NULL值而返回NULL mysql> select concat_ws(',','11','22',NULL); +-------------------------------+ | concat_ws(',','11','22',NULL) | +-------------------------------+ | 11,22 | +-------------------------------+ 1 row in set (0.00 sec) MySQL中group_concat函数 完整的语法如下: group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符']) 基本查询 mysql> select * from aa; +------+------+ | id| name | +------+------+ |1 | 10| |1 | 20| |1 | 20| |2 | 20| |3 | 200 | |3 | 500 | +------+------+ 6 rows in set (0.00 sec) 以id分组,把name字段的值打印在一行,逗号分隔(默认) mysql> select id,group_concat(name) from aa group by id; +------+--------------------+ | id| group_concat(name) | +------+--------------------+ |1 | 10,20,20| |2 | 20 | |3 | 200,500| +------+--------------------+ 3 rows in set (0.00 sec) 以id分组,把name字段的值打印在一行,分号分隔 mysql> select id,group_concat(name separator ';') from aa group by id; +------+----------------------------------+ | id| group_concat(name separator ';') | +------+----------------------------------+ |1 | 10;20;20 | |2 | 20| |3 | 200;500 | +------+----------------------------------+ 3 rows in set (0.00 sec) 以id分组,把去冗余的name字段的值打印在一行, 逗号分隔 mysql> select id,group_concat(distinct name) from aa group by id; +------+-----------------------------+ | id| group_concat(distinct name) | +------+-----------------------------+ |1 | 10,20| |2 | 20 | |3 | 200,500 | +------+-----------------------------+ 3 rows in set (0.00 sec) 以id分组,把name字段的值打印在一行,逗号分隔,以name排倒序 mysql> select id,group_concat(name order by name desc) from aa group by id; +------+---------------------------------------+ | id| group_concat(name order by name desc) | +------+---------------------------------------+ |1 | 20,20,10 | |2 | 20| |3 | 500,200| +------+---------------------------------------+ 3 rows in set (0.00 sec) repeat()函数 用来复制字符串,如下'ab'表示要复制的字符串,2表示复制的份数 mysql> select repeat('ab',2); +----------------+ | repeat('ab',2) | +----------------+ | abab | +----------------+ 1 row in set (0.00 sec) 又如 mysql> select repeat('a',2); +---------------+ | repeat('a',2) | +---------------+ | aa | +---------------+ 1 row in set (0.00 sec) mysql向表中某字段后追加一段字符串: update table_name set field=CONCAT(field,'',str) mysql 向表中某字段前加字符串 update table_name set field=CONCAT('str',field) 这个函数对你也许会有很大帮助哦!!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小马穿云

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值