首页 > 数据库 >MySQL字符串函数详解

MySQL字符串函数详解

时间:2025-01-23 21:00:45浏览次数:1  
标签:返回 MySQL len 详解 str mysql 字符串 SELECT

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

相关文章

  • MySQL字符串函数解读
    ASCII(str) 返回str字符串中最左边字符的ascii码值,如果是空串则返回0,如果str是null则返回null1234567•mysql>SELECTASCII('a');•->97•mysql>SELECTASCII('b');•->98•mysql>SELECTASCII('ab');•->97只返回第一个字符的ASCI......
  • MySQL字符串函数
    ASCII(str) 返回str字符串中最左边字符的ascii码值,如果是空串则返回0,如果str是null则返回null1234567•mysql>SELECTASCII('a');•->97•mysql>SELECTASCII('b');•->98•mysql>SELECTASCII('ab');•->97只返回第一个字符的ASCI......
  • C++ 队列( queue )详解 加强版
    作者制作不易,关注、点赞、收藏一下吧!目录1.队列2.模拟队列2.1.入队(push)2.2.出队(pop)2.3.获取队首元素2.4.获取队尾元素2.5.获取队列长度2.6.判断队列是否为空3.直接使用队列(queue)3.1.普通队列3.1.1.入队(push)3.1.2.出队(pop)3.1.3.获取队首元素(......
  • mysql中的排序
    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、语法二、场景三、与其他语法结合groupbylimitoffset四、排序底层流程五、索引校验是索引排序还是临时表排序命中索引规则总结前言`mysql中排序底层逻辑一、语法select[column......
  • mysql中change buffer
    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、changebuffer工作流程位置流程场景底层逻辑二、优缺点减少磁盘IO读取延迟多消耗内存三、启用场景四、配置innodb_change_buffer_max_sizeinnodb_change_buffering2.读入数据总结......
  • 如何系统优化MySQL【表结构优化、索引优化】(上篇)
    ......
  • PHP+MYSQL+HTML实现在线购物商城,基于php的电商系统,电子商务网站,零食购物商城
     一,功能介绍        前台主要包括网站首页、商品推荐、最新商品、新闻咨询、商品分类、商品资讯、评论、登录、注册、加入购物车、结算、个人中心等功能模块商品推荐、最新商品在商品推荐、最新商品模块,用户可以查看全部商品信息,选择商品进行添加购物车等操作,购......
  • 一文详解!大模型性能测试全指标、计算方法及优化指南
    最近一周,我参与了一些第三方大模型的性能测试,在过程中发现,对于那些对实时性和稳定性要求较高的应用场景,模型的性能指标已经成为衡量其优劣的关键。这些指标不仅直接影响用户体验,还决定了模型能否真正胜任复杂的业务需求。在近年来大模型技术的快速发展中,我们看到智谱、文......
  • 电脑分区怎么调整分区大小,方法详解
    调整电脑分区大小可以通过Windows内置的磁盘管理工具或第三方分区软件来实现。以下是使用这两种方法的详细步骤:一、使用Windows内置的磁盘管理工具打开磁盘管理工具:右键点击“我的电脑”或“此电脑”,选择“管理”。在左侧列表中点击“存储”下的“磁盘管理”。或者,按下Win......
  • 初级黑客入门之sql注入报错分享(mssql+mysql),黑客技术零基础入门到精通实战教程!
    mysql溢出类bigint当超过mysql的整形的时候,就会导致溢出,mysql可能会将错误信息带出。这里user()是字母默认为0取反以后+1可能就会导致异常。报错特征BIGINTUNSIGNEDvalueisoutofrangein不需要函数,直接让他报错出来select%20(~(select%20\*%20from(select%2......