目录

1.concat:将两个或多个字符串组合成一个字符串

2.length和char_length函数:以字节和字符获取字符串的长度

3.left:返回具有指定长度的字符串的左边部分

4.right:回具有指定长度的字符串的右边部分

5.replace:搜索并替换字符串中的子字符串。

6.substring:从具有特定长度的位置开始提取一个子字符串。

7.trim:从字符串中删除不需要的字符。

8.find_in_set:在逗号分隔的字符串列表中找到一个字符串

9.format:格式化具有特定区域设置的数字,舍入到小数位数。


1.concat:将两个或多个字符串组合成一个字符串

MySQL CONCAT()函数需要一个或多个字符串参数,并将它们连接成一个字符串。CONCAT()函数需要至少一个参数,否则会引起错误

连接之前将所有参数转换为字符串类型。如果任何参数为NULL,则CONCAT()函数返回NULL值。

如果想用连接符,需要在连接的项目之间拼接上连接符。

查询语句:select CONCAT(supplier_id,'-',supplier_name) from bms_bills_memo where id = 4
结果:6-供应商4

CONCAT_WS()函数将两个或多个字符串值与预定义的分隔符相连接。

第一个参数是分隔符,后面是要拼接的参数

只有分隔符为null时才返回null,如果项目为null时,则不拼接

查询语句:
select CONCAT_WS('-',supplier_id,supplier_name) from bms_bills_memo where id = 4select CONCAT_WS('-',null,supplier_name) from bms_bills_memo where id = 4select CONCAT_WS('-',null,null) from bms_bills_memo where id = 4
结果:
6-供应商4
供应商4
空

2.length和char_length函数:以字节和字符获取字符串的长度

length:获取以字节为单位的字符串长度

char_length:获取以字符为单位的字符串的长度

字节(Byte)是计量单位,表示数据量多少,是计算机信息技术用于计量存储容量的一种计量单位,通常情况下一字节等于八位。

字符(Character)计算机中使用的字母、数字、字和符号,比如'A'、'B'、'$'、'&'等。

一般在英文状态下一个字母或字符占用一个字节,一个汉字用两个字节表示。

  • ASCII 码中,一个英文字母(不分大小写)为一个字节,一个中文汉字为两个字节。
  • UTF-8 编码中,一个英文字为一个字节,一个中文为三个字节。
  • Unicode 编码中,一个英文为一个字节,一个中文为两个字节。
  • 符号:英文标点为一个字节,中文标点为两个字节。例如:英文句号 . 占1个字节的大小,中文句号 。占2个字节的大小。
  • UTF-16 编码中,一个英文字母字符或一个汉字字符存储都需要 2 个字节(Unicode 扩展区的一些汉字存储需要 4 个字节)。
  • UTF-32 编码中,世界上任何字符的存储都需要 4 个字节。
查询语句:
select LENGTH(supplier_name) from bms_bills_memo  where id = 4select CHAR_LENGTH(supplier_name) from bms_bills_memo  where id = 4
结果:
10
4
表中数据
supplier_name:供应商4

结合使用

SELECT postid,title,IF(CHAR_LENGTH(excerpt) > 20,CONCAT(LEFT(excerpt,20), '...'),excerpt) summary
FROM posts;

我们使用IF函数来检查摘录列的长度是否大于20,并使用CONCAT语句将excerpt列的值与省略号(...)连接起来,否则只是获取全部摘录(excerpt)内容

3.left:返回具有指定长度的字符串的左边部分

查询语句:
select LEFT(client_name,4) from bms_bills_memo where id = 4
结果:
青岛自贸
表中数据
client_name:青岛自贸新零售体验中心有限公司

LEFT()函数接受两个参数:

  • str是要提取子字符串的字符串。
  • length是一个正整数,指定将从左边返回的字符数。

LEFT()函数返回str字符串中最左边的长度字符。如果strlength参数为NULL,则返回NULL值。

如果length0或为负,则LEFT函数返回一个空字符串。如果length大于str字符串的长度,则LEFT函数返回整个str字符串。

4.right:回具有指定长度的字符串的右边部分

查询语句:
select RIGHT(client_name,4) from bms_bills_memo where id = 4
结果:
有限公司
表中数据:
client_name:青岛自贸新零售体验中心有限公司

5.replace:搜索并替换字符串中的子字符串。

有三个参数,它将string中的old_string替换为new_string字符串

请注意,当搜索要替换的文本时,MySQL使用区分大小写匹配来执行要替换的字符串的搜索

不支持正则表达式

查询语句:
select REPLACE(client_name,'青岛','威海') from bms_bills_memo where id = 4
结果:
威海自贸新零售体验中心有限公司查询语句:
select REPLACE(bill_of_lading_no,'td','ab') from bms_bills_memo where id = 4
结果:
TD10004结果没有发生变化,因为区分大小写

6.substring:从具有特定长度的位置开始提取一个子字符串。

SUBSTRING(string,position);
SUBSTRING(string FROM position);

有两个参数:

  • string参数是要提取子字符串的字符串。
  • position参数是一个整数,用于指定子串的起始字符,position可以是正或负整数。

如果position为正,则SUBSTRING函数从字符串的开始处提取子字符串。

如果position参数为零,则SUBSTRING函数返回一个空字符串。

可以使用SQL标准语法与FROM关键字一起调用SUBSTRING函数

查询语句:
select SUBSTRING(bill_of_lading_no,2) from bms_bills_memo where id = 4
结果:
D10004查询语句:
select SUBSTRING(bill_of_lading_no,-2) from bms_bills_memo where id = 4
结果:
04表中数据:
bill_of_lading_no:TD10004

如果要指定要从字符串中提取的子字符串的长度,可以使用以下形式的SUBSTRING函数

SUBSTRING(string,position,length);
SUBSTRING(string FROM position FOR length);
查询语句:
select SUBSTRING(bill_of_lading_no,2,5) from bms_bills_memo where id = 4
结果:
D1000查询语句:
select SUBSTRING(bill_of_lading_no,-7,5) from bms_bills_memo where id = 4
结果:
TD100表中数据:bill_of_lading_no:TD10004

SUBSTR()函数是SUBSTRING()函数的同义词,所以可以互换使用它们。

SUBSTRING_INDEX的用法

按照某个特定符号进行分割,并取出对应的值

查询语句:
select SUBSTRING_INDEX('qwe-etr-tyu','-',1)
select SUBSTRING_INDEX('qwe-etr-tyu','-',2)
select SUBSTRING_INDEX('qwe-etr-tyu','-',-1)
select SUBSTRING_INDEX('qwe-etr-tyu','-',-2)结果:
qwe
qwe-etr
tyu
etr-tyu

7.trim:从字符串中删除不需要的字符。

TRIM([{BOTH|LEADING|TRAILING} [removed_str]] FROM str);

您可以使用LEADINGTRAILINGBOTH选项明确指示TRIM()函数从字符串中删除前导,尾随或前导和尾随的不必要的字符。

如果您没有指定任何内容,TRIM()函数默认使用BOTH选项。

[removed_str]是要删除的字符串。默认情况下,它是一个空格。这意味着如果不指定特定的字符串,则TRIM()函数仅删除空格。

str是要删除子字符removed_str的字符串。

TRIM()函数返回一个字符串,删除不需要的字符。

查询语句:
//从字符串中除去前导和尾随空格
SELECT TRIM(' MySQL TRIM Function ');
//仅删除前导空格
SELECT TRIM(LEADING FROM '    MySQL TRIM Function   ');
//仅删除尾随空格
SELECT TRIM(TRAILING FROM '    MySQL TRIM Function   ');
//删除字符串末尾的换行符
-- 方式一
SELECT TRIM(TRAILING '\n' FROM field_name)
FROM table_name;-- 方式二
SELECT TRIM(TRAILING '\r' FROM field_name)
FROM table_name;-- 方式三
SELECT TRIM(TRAILING '\r\n' FROM field_name)
FROM table_name;

如果要仅删除前导或尾随空格,则可以使用其他字符串函数:LTRIMRTRIM

使用LTRIM函数来删除字符串的前导空格

SELECT LTRIM(' MySQL LTRIM function'); 
使用RTRIM()函数来删除字符串的尾随空格

SELECT RTRIM('MySQL RTRIM function ');

8.find_in_set:在逗号分隔的字符串列表中找到一个字符串

FIND_IN_SET(needle,haystack);

FIND_IN_SET()函数接受两个参数:

  • 第一个参数needle是要查找的字符串。
  • 第二个参数haystack是要搜索的逗号分隔的字符串列表。

FIND_IN_SET()函数根据参数的值返回一个整数或一个NULL值:

  • 如果needlehaystackNULL,则函数返回NULL值。
  • 如果needle不在haystack中,或者haystack是空字符串,则返回零。
  • 如果needlehaystack中,则返回一个正整数。

请注意,如果needle包含逗号(),该函数将无法正常工作。 此外,如果needle是一个常量字符串,而且haystack是一个类型为SET的列,MySQL将使用位算术优化。

查询语句:
select FIND_IN_SET('red','yellow,red,blue')
结果:
2

where中可以直接使用find_in_set

SELECT name, belts
FROMdivisions
WHEREFIND_IN_SET('red', belts);SELECT name, belts
FROMdivisions
WHERENOT FIND_IN_SET('black', belts);

FIND_IN_SET函数与IN运算符具有相同的功能

column IN (x, y, z)表达式与FIND_IN_SET(column, 'x,y,z')相同。

IN运算符可以接受任意数量的参数,每个参数用逗号分隔。 但是,FIND_IN_SET函数只有两个参数。

当您希望将值与数据库中的值列表进行匹配时,可以使用IN运算符。 并且当希望将值与数据库中以逗号分隔存储的值列表进行匹配时,可以使用FIND_IN_SET函数。

9.format:格式化具有特定区域设置的数字,舍入到小数位数。

FOMRAT(N,D,locale);

FORMAT函数将数字N格式化为格式,如"#,###,###.##",舍入到D位小数。它返回一个值作为字符串。

FORMAT函数接受三个参数:

  • N是要格式化的数字。
  • D是要四舍五入的小数位数。
  • locale是一个可选参数,用于确定千个分隔符和分隔符之间的分组。如果省略locale操作符,MySQL将默认使用en_US。以下链接提供MySQL支持的所有区域名称:http://dev.mysql.com/doc/refman/5.7/en/locale-support.html
查询语句:
select format(123456.1258,2)
select format(123456.1248,2)
结果:
123,456.13
123,456.12

可以组合两个函数:FORMATCONCATFORMAT函数将库存值格式舍入为2位小数。 并且concat函数在库存值字符串的开头添加人民币符号()

SELECT productname,CONCAT('¥',FORMAT(quantityInStock * buyPrice, 2)) stock_value
FROMproducts;

MySQL函数之字符串函数相关推荐

  1. php mysql 随机字符串函数是,mysql生成随机字符串函数分享

    这篇文章主要介绍了mysql生成随机字符串函数分享,本文直接给出实现代码,需要的朋友可以参考下 set global log_bin_trust_function_creators = 1; DROP ...

  2. mysql学习-常用的函数(字符串函数)

    mysql中的字符串函数 函数 功能 CONCAT(s1,s2,...sn) 连接s1,s1...sn为一个字符串 INSERT(str,x,y,instr) 将字符串str从x位置开始,y个字符长的 ...

  3. mysql strcmp s1 s2_MySQL函数基础——字符串函数详解

    昨天,咱们对MySQL的数学函数进行了讲解,今天,咱们再来解析MySQL字符串函数. 字符串函数主要用来处理数据库中的字符串数据,MySQL中字符串函数有:计算字符串长度函数.字符串合并函数.字符串替 ...

  4. mysql函数编写格式_MySQL函数基础——字符串函数详解

    昨天,咱们对MySQL的数学函数进行了讲解,今天,咱们再来解析MySQL字符串函数. 字符串函数主要用来处理数据库中的字符串数据,MySQL中字符串函数有:计算字符串长度函数.字符串合并函数.字符串替 ...

  5. 常见的字符函数与字符串函数介绍(1)

    常见的字符函数与字符串函数介绍 前言 C语言中对字符与字符串的处理很是频繁,但是C语言中并没有字符串类型的变量,字符串通常存放在常量字符串或者字符数组中.字符串常量适用于那些对它不做任何修改的字符串函 ...

  6. oracle函数大全指数运算,Oracle 基础语句 函数大全(字符串函数,数学函数,日期函数,逻辑运算函数......

    ORACLE PL/SQL 字符串函数.数学函数.日期函数 --[字符串函数] --字符串截取substr(字段名,起始点,个数) select Name,substr(Name,2,4),subst ...

  7. java 字符串函数_Java字符串函数– 25+必须知道方法

    java 字符串函数 Java字符串函数 (Java String Functions) Java String class has a lot of functions to manipulate ...

  8. 字符函数和字符串函数_R中的字符串–函数及其操作

    字符函数和字符串函数 Strings are generally a one-dimensional (1D) arrays that contain single or multiple value ...

  9. C语言函数: 字符串函数及模拟实现strtok()、strstr()、strerror()

    C语言函数: 字符串函数及模拟实现strtok().strstr().strerror() strstr()函数: 作用:字符串查找.在一串字符串中,查找另一串字符串是否存在. 形参: str2在st ...

  10. Hive函数(内置函数(字符串函数,数学函数,日期函数,集合函数,条件函数,聚合函数,表生成函数)和自定义函数(自定义函数创建流程,临时函数,永久函数)))(四)

    Hive函数(内置函数和自定义函数) 一.内置函数 1.字符串函数 (1)ascii (2)base64 (3)concat (4)concat_ws (5)format_number (6)subs ...

最新文章

  1. Azure上A/D系列虚拟机到DS系列迁移(2)
  2. ASP.NET的状态管理
  3. PyTorch项目使用TensorboardX进行训练可视化
  4. 图的基本运算及智能交通中的最佳路径选择问题
  5. jqGrid 常用方法
  6. (延迟两秒,跳转相应页面)(返回到上一个页面并刷新)
  7. linux程序多少位,查看linux版本是多少位
  8. thrift介绍及应用(四)—hadoop的thrift接口
  9. 【设计模式系列】行为型之责任链模式
  10. 读《编码-藏匿在计算机软硬件背后的语言》有感
  11. **网页静态化解决方案_Freemarker*
  12. 2018计算机应用基础作业一,2018计算机应用基础试题及答案
  13. Java 根据模板文件生成新的PPT
  14. STM32开发实例 基于STM32单片机的智能快递系统
  15. Linux中shell编程——编写shell脚本,实现功能:在用户输入年、月后自动打印出对应年月的日
  16. 计算机网络基础之运输层
  17. element分页组件,搜索过后current-page 绑定的数据变了,但是页面当前页码并没有变的问题
  18. 月薪2万的Java工程师简历是这样的
  19. 联想服务器硬盘灯全部闪烁,服务器故障处理 X3650M4主板故障 硬盘黄灯 内存错误 联想(IBM)服务器配件...
  20. 君安思危,测试要赶上开发的脚步

热门文章

  1. Android之HttpClient的详解
  2. duilib仿百度网盘界面
  3. 有想法就去做的我,又一次失败了
  4. YbtOJ 广度搜索课堂过关 例4 荆轲刺秦王【bfs】
  5. Python嵩天第二版版基础习题代码
  6. 物品抠图怎么更换背景?快来get这个方法
  7. 哈哈,没有想到有这种数学高手...
  8. GitHub:深度学习500问之(一)数学基础
  9. 【数据分析】基于XGboost(决策树)的银行产品认购预测--小林月
  10. UI自动化测试-数据驱动(ddt)