首页 > 数据库 >十分钟教你学会 MySQL字符串处理

十分钟教你学会 MySQL字符串处理

时间:2024-07-30 10:24:02浏览次数:12  
标签:TRIM 函数 我们 十分钟 MySQL 字符串 查询 id CONCAT

CONCAT函数

在Java语言中,我们经常会对字符串进行处理,在ySQL中,我们同样也有这样的函数来处理字符串,这节课我们来学习CONCAT函数。

语法

我们来看一下concat函数的语法:

SELECT column_name1,CONCAT(column_name2,str,column_name3),column_name4 FROM table_name;

我们来分析一下这个语法:

  • 首先这是一个查询语句,最基本的结构是 SELECT 列名 FROM 表名
  • CONCAT函数可以拼接列名,也可以拼接字符串
  • 在使用CONCAT函数的时候可以同时查询其他的列
  • CONCAT函数的参数之间用英文,分隔

比如现在我们想查询timi_adc表中英雄的id,以及名字+胜率,我们可以利用concat函数,把结果的可阅读性变得更好:

SELECT
  id,
  concat(hero_name, '的胜率是', win_rate)
FROM
  timi_adc;

我们可以看到查询结果有一列CONCAT,输出的第一条数据是,后羿的胜率是0.4995。

大家都应该接触过类似于王者荣耀战绩周报等数据分析,他们的输出结果就可以使用CONCAT函数完成。

需要注意的是,如果拼接的值中有NULL,则结果一律为NULL,这是NULL本身特性决定的。

配合WHERE语句查询

我们同样可以配合WHERE语句来使用CONCAT查询,比如在上面的例子中,我们想查询id = 3的数据,那么我们可以这么写:

SELECT
  concat(hero_name, '的胜率是', win_rate)
FROM
  timi_adc
WHERE
  id = 3;

别名

我们优化拼接的结果,给他起一个别名,比如我希望查询结果的列名叫result,那么我们可以这么写:

SELECT
  concat(hero_name, '的胜率是', win_rate) as result
FROM
  timi_adc
WHERE
  id = 3;

别名也可以应用在其他的列名,大家可以尝试一下

TRIM函数

数据库记录的是用户输入的数据,用户输入时的数据通常不是我们所预期的,有时候它会包含空格等我们并不需要的字符,从而产生脏数据,为了保持数据的格式正确,我们经常会使用TRIM函数来清理数据,这节课我们就将学习它。

语法

TRIM (str)

TRIM()函数的语法非常简单,就是把需要去除空格的数据放在TRIM()函数的空格里面,比如我们现在向timi_adc中插入两条新的数据:

INSERT INTO
  timi_adc
VALUES
  (
    20,
    '      鲁班七号',
    'T1      ',
    0.5111,
    0.2300,
    0.0944,
    now(),
    now()
  ),
  (
    21,
    '     后羿      ',
    'QT1Q',
    0.5111,
    0.2300,
    0.0944,
    now(),
    now()
  );

大家可以手动执行一下

现在我们想要查询id为20的姓名和热度,我们期望去掉数据中的空格,我们可以这么写:

SELECT
  trim(hero_name),
  trim(fever)
FROM
  timi_adc
WHERE
  id = 20;

trim()函数可以去掉查询结果中的空格,但是不会修改原数据,修改原数据需要配合UPDATE/DELETE语句使用

语法拓展

trim()函数也可以精准的去掉前面或者后面的空格,或者其他的字符,语法如下:

TRIM( BOTH|LEADING|TRAILING removed_str FROM str);
  • TRIM函数可以加上LEADING来只除去前面的空格,或者加上TRAILING来只除去后面的空格,如果都不加,则默认是BOTH。
  • TRIM函数可以删除指定的字符串内容,如果不加,则默认删除空格。

比如我们要去掉id为21这条数据中fever尾部的Q,那么我们可以这么写查询语句:

SELECT
  TRIM(
    TRAILING 'Q'
    FROM
      fever
  )
FROM
  timi_adc
WHERE
  id = 21;

我们可以看到,我们精准的去掉了QT1Q尾部的Q。

REPLACE()函数

TRIM()函数不能去掉字符串中间的值,如果要修改中间的值,我们可以使用REPLACE()函数,它的语法如下:

UPDATE table_name 
SET colunm_name = 
REPLACE(column_name,string_find,string_to_replace) 
WHERE conditions;

大家可以看到这个语法很复杂,它可以把找到的某个字符串替换成另一个字符串,其实我们可以直接用UPDATE语句修改,所以REPLACE()函数的实用性并不高。

MySQL字符串有很多函数,但是在实际的应用中,我们会采用MyBatis等框架去操作SQL,所以我们并不需要学会所有的字符串函数,这一章我们学会了常用的trim()和concat(),其他函数在接触到时,可以查询语法使用。

标签:TRIM,函数,我们,十分钟,MySQL,字符串,查询,id,CONCAT
From: https://blog.csdn.net/oageux/article/details/140750872

相关文章

  • C#判断字符串是否满足多个条件中的任意一个条件的逻辑
    //示例:初始化DataTable并填充数据DataTabledataTable=newDataTable();dataTable.Columns.Add("Length",typeof(int));dataTable.Columns.Add("StartIndex",typeof(int));dataTable.Columns.Add("EndIndex",typeof(int));dataTable.Columns.......
  • 简单认识MySQL存储引擎
    MySQL体系结构连接层。一些客户端和链接服务,主要完成如连接处理、授权认证及选相关的安全方案服务层。主要完成大多数的核心服务功能,比如SQL接口,缓存的查询,SQL分析和优化,部分内置函数的执行。所以跨存储引擎的功能在这一层实现,如存储过程、函数等。引擎层。真正负责DBMS中数据......
  • MySQL 基础语法教程
    MySQL是一个开源的关系型数据库管理系统,它广泛应用于各种网站和应用程序中。本文将介绍MySQL的基础语法,包括数据库和表的创建、数据操作、索引和约束等内容。1.基本概念在MySQL中,数据库用于存储数据,表是数据库中的基本单位。了解这些基本概念是使用MySQL的第一步......
  • 只讲干货!!数据库的裤腰带!!今天拿下:MySQL中的约束!!
    MySQL中的约束约束概述        数据库约束是对表中的数据进行进一步的限制,保证数据的正确性、有效性和完整性主键约束(PrimaryKey)PK        主键约束是使用最频繁的约束。在设计数据表时,一般情况下,都会要求表中设置一个主键。        ......
  • mysql中substring_index类似split分组功能
     这条MySQL语句中使用了substring_index函数来处理training_pictures列的数据。下面是该函数的具体用法:substring_index(str,delim,count):这个函数会返回字符串str中第count个出现的分隔符delim之前的所有字符,或者之后的所有字符(取决于count的正负)。具体到你提供的查询:s......
  • mysql的主从复制和读写分离
    目录主从复制主从复制的模式1.异步模式2.全同步模式3.半同步模式主从复制的延迟主从复制的延迟的原因解决方案双一设置性能化设置主从复制如何实现安装步骤读写分离实验步骤面试题主从复制主从复制的模式1.异步模式mysql的默认模式:主库在更新完事务之后会......
  • mysql的MHA以及故障模拟
    目录MHA概念MHA的组件MHA的特点实验:搭建完成MHA的架构实验:主备切换实验结果实验:故障切换实验:故障恢复MHA概念MHA:高可用模式下的故障切换,基于主从复制。它解决的是单点故障和主从复制不能切换的问题。它至少需要3台。故障切换过程0-30秒。它能根据VIP地址所在的主机......
  • MySQL 性能调优
    文章目录一.MySQL调优金字塔1.架构调优2.MySQL调优3.硬件和OS调优4.小结二.查询性能调优三.慢查询1.概念2.优化数据访问3.请求了不需要数据,怎么做4.是否在扫描额外的记录5.慢查询相关配置&日志位置6.小结四.查询优化器五.实现调优手段一.MySQL调......
  • Windows11安装MySQL8.4.2版本详细过程记录
    下载地址:https://dev.mysql.com/downloads/mysql/8.0.html我选择下载zip版本:点击下载需要登录:于是我登录:接着点下载:被迅雷拦截了,直接使用迅雷下载:下载好了:复制到C盘的dev目录:安装解压:这个看上去需要一些基础命令才能操作:于是我重新下载了这个msi版本......
  • MySQL数据库基础操作与概念详解(三)
    DML和DQL语句1.新增–INSERTINTO表名(字段名,字段名,…字段名)values/value(值,值,…值)–日期使用字符串的形式进行书写日期格式(yyyy-MM-ddHH-dd)1.全字段的输入(1)方式一INSERTINTOstudent(sid,sname,birthday,ssex,classid)VALUES(9,‘张三’,‘2002-9-23’,‘......