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

MySQL字符串函数

时间:2025-01-23 20:53:17浏览次数: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/shujuyr/p/18688611

相关文章

  • mysql中的排序
    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、语法二、场景三、与其他语法结合groupbylimitoffset四、排序底层流程五、索引校验是索引排序还是临时表排序命中索引规则总结前言`mysql中排序底层逻辑一、语法select[column......
  • mysql中change buffer
    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、changebuffer工作流程位置流程场景底层逻辑二、优缺点减少磁盘IO读取延迟多消耗内存三、启用场景四、配置innodb_change_buffer_max_sizeinnodb_change_buffering2.读入数据总结......
  • 如何系统优化MySQL【表结构优化、索引优化】(上篇)
    ......
  • PHP+MYSQL+HTML实现在线购物商城,基于php的电商系统,电子商务网站,零食购物商城
     一,功能介绍        前台主要包括网站首页、商品推荐、最新商品、新闻咨询、商品分类、商品资讯、评论、登录、注册、加入购物车、结算、个人中心等功能模块商品推荐、最新商品在商品推荐、最新商品模块,用户可以查看全部商品信息,选择商品进行添加购物车等操作,购......
  • 在Rust项目中,一般测试用例函数 #[(test)] 都写在哪里? 如果要测试 main.rs 文件中的函
    eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee在Rust项目中,测试用例通常放在以下两个位置:1.与源代码同文件中的模块测试用例函数一般写在与实现代码同一个文件中,放在一个名为tests的模块里,使用#[cfg(test)]注解。这种方式适用于对模块内的函数或逻辑进行单元测试。示......
  • 比特c语言-数组和函数实践:扫雷
      目录游戏分析和设计游戏功能说明游戏界面分析和设计数据结构分析文件结构设计游戏设计思路游戏代码实现游戏扩展游戏分析和设计游戏功能说明使用控制台实现经典扫雷游戏游戏可以通过菜单实现是否退出游戏扫雷棋盘默认为9*9格子默认随机布置10个雷可以进行排查雷如......
  • 初级黑客入门之sql注入报错分享(mssql+mysql),黑客技术零基础入门到精通实战教程!
    mysql溢出类bigint当超过mysql的整形的时候,就会导致溢出,mysql可能会将错误信息带出。这里user()是字母默认为0取反以后+1可能就会导致异常。报错特征BIGINTUNSIGNEDvalueisoutofrangein不需要函数,直接让他报错出来select%20(~(select%20\*%20from(select%2......
  • deformable attention中生成初始采样点位置(init_weights或者_reset_parameters函数)
    def_reset_parameters(self):constant_(self.sampling_offsets.weight.data,0)"""初始化偏移量预测的偏置(bias),使得初始偏移位置犹如不同大小的方形卷积核组合"""#(8,)[0,pi/4,pi/2,3*pi/2,...,7*pi/4]thetas=torch.arange(self.n_heads,......
  • Linux下printf函数的输出问题
    Linux下printf函数的输出问题        向屏幕输出,C语言中可以使用printf函数,实际上,printf不是直接把数据输出到屏幕上的,首先把输出的内容写到缓冲区中,当缓冲区放满以后,它会把缓冲区的内容输出到屏幕上。        为什么这样做呢?        有一个效率的......
  • LeetCode 8. 字符串转换整数 (atoi)
    题目原题链接:LeetCode8.字符串转换整数(atoi)思路题目首先要判断空格。将前面的空格先一个个扣除。扣完空格记得判断是否到达字符串末尾。然后判断符号。用一个int存符号,正数为1,负数为-1。接下来题目又说前置零又说非数字字符又说数字,理一下思路,其实就是判断是否是数字,是......