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

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(),其他函数在接触到时,可以查询语法使用。

  • 23
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值