十分钟教你学会 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函数,把结果的可阅读性变得更好:

SELECTid,concat(hero_name, '的胜率是', win_rate)
FROMtimi_adc;

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

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

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

配合WHERE语句查询

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

SELECTconcat(hero_name, '的胜率是', win_rate)
FROMtimi_adc
WHEREid = 3;

别名

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

SELECTconcat(hero_name, '的胜率是', win_rate) as result
FROMtimi_adc
WHEREid = 3;

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

TRIM函数

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

语法

TRIM (str)

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

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

大家可以手动执行一下

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

SELECTtrim(hero_name),trim(fever)
FROMtimi_adc
WHEREid = 20;

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

语法拓展

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

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

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

SELECTTRIM(TRAILING 'Q'FROMfever)
FROMtimi_adc
WHEREid = 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(),其他函数在接触到时,可以查询语法使用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/386498.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何用PostMan按照规律进行循环访问接口

①设置动态变量 步骤一: 设置环境变量 1. 创建环境变量集合 在 Postman 左上角选择 "环境",然后点击 "添加" 来创建一个新的环境变量集合。给它起一个名称,比如 "uploadDemo". 2. 添加初始变量 在新创建的环境变量集…

C语言边界互通传送迷宫

目录 注意事项开头程序程序的流程图程序输入与输出的效果结尾 注意事项 程序里有关字符’\033’的输出都关于Sunshine-Linux的其中一篇博客——《printf函数高级用法设置打印字体颜色和背景色等》 开头 大家好,我叫这是我58。今天,我们来看一下我用C语…

微服务面试-分布式 注册中心 远程调用 保护

标红的原理还是不太熟悉 重新看 分布式事务 CAP理论 Consistency(一致性) Availability(可用性) Partition tolerance (分区容错性) BASE 理论 就是做取舍 cap三选二 AT模式脏写 TCC模式 注册中…

4nm点状激光模组的应用让未来科技走向潮流

在科技发展时代,激光技术以其高精度、高效率的特性,正逐步成为众多行业不可或缺的核心技术之一。其中,4nm点状激光模组作为激光技术领域的佼佼者,凭借其卓越的性能和广泛的应用前景,正引领着科技发展的新潮流。接下来我…

UnityShaderUI编辑器扩展

前言: 当我们在制作通用Shader的时候,避免不了许多参数混杂在一起,尽管在材质面板已经使用过Header标签来区分,但是较长的Shader参数就会导致冗余,功能块不够简约明了,如图: 对于Shader制作者来…

用spingboot+vue实现酒店管理系统的不同角色登录功能(附源码)

酒店管理系统 一、项目介绍 1、项目用到的技术栈 开发工具:idea 语言:java、js、htmlajax 数据库:MySQL 服务器:Tomcat 框架:mybatis、jQuery、springboot、vue 2、项目实现功能 管理员和用户登录和退出功能以及用…

WSL for Windows

1、安装 超详细Windows10/Windows11 子系统(WSL2)安装Ubuntu20.04(带桌面环境)_wsl安装ubuntu20.04-CSDN博客https://blog.csdn.net/weixin_44301630/article/details/122390018 注意,安装之后首次启动 Ubuntu 时&…

NC 删除有序链表中重复的元素-I

系列文章目录 文章目录 系列文章目录前言 前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 描述 删除给出链表…

用依赖倒置和控制反转,突破Golang循环调用限制之后的思考

在软件开发中,随着项目规模的扩大和业务逻辑的复杂化,重构代码变得越来越重要。本文将介绍如何在既有代码基础上,通过依赖倒置(DIP)和控制反转(IoC),实现新增加的代码可以循环引用到…

初学Mybatis之动态 SQL

动态 SQL 是指根据不同的条件生成不同的 SQL 语句 动态 SQL 详情请看链接 搭建环境: mysql 建立博客表 CREATE TABLE blog(id VARCHAR(50) NOT NULL COMMENT 博客id,title VARCHAR(100) NOT NULL COMMENT 博客标题,author VARCHAR(30) NOT NULL COMMENT 博客作者…

SolidWorks 2022安装包下载(图文详细安装教程)

SolidWorks 2022提供了强大的工具和功能,旨在帮助工程师和设计师进行产品设计和工程分析。它具有直观的用户界面和用户友好的操作,使得用户可以快速上手并进行复杂的设计任务。 主要特点和功能包括: 三维建模和装配:SolidWorks 20…

电脑没有摄像头怎么用手机当摄像头?虚拟摄像头使用的详细教程来了(全)

随着科技水平以及全球化经济的快速发展,视频会议、在线课程和直播已经成为日常办公或者生活中必不可少的一个环节。然而,在如今仍有许多台式电脑和一些老旧的笔记本电脑并没有内置摄像头,亦或者自带的摄像头质量不够理想,这使得视…

《python语言程序设计》2018版第6章第19题几何问题点的位置,利用4.31显示如何测试一个点是在一条有向线的左、右还是刚好在线上

# 这个是4.31的代码,一个函数里包含了。在线上,在线左,在线右 def judgePoint(x0, y0, x1, y1, x2, y2):juMethod ((x1 - x0) * (y2 - y0)) - ((x2 - x0) * (y1 - y0))if juMethod > 0:print("p2 is on the left side of the line f…

学习笔记:MySQL数据库操作5

1. 触发器(Triggers) 触发器是数据库的一种高级功能,它允许在执行特定数据库操作(如INSERT、UPDATE、DELETE)之前或之后自动执行一段代码。 1.1 创建商品和订单表 商品表(goods) gid: 商品编号…

Web3.js 4.x版本事件监听详解:从HTTP到WebSocket的迁移

项目场景 在一个使用以太坊区块链技术的项目中,需要监听智能合约的事件,以便在事件触发时能够及时响应。项目中使用了web3.js库的4.x版本,节点使用Geth启动,并通过HTTP与节点进行通信。 问题描述 合约DataStorage.sol文件已经定…

优雅单片机之STM32C8T6------蓝牙模块基本设置(2)

0,C8T6系列 1,入门之程序的下载 2,蓝牙模块基本设置(本文) 2,蓝牙模块基本应用 3,蓝牙小车(待定) 一,蓝牙模块基础设置 需要硬件:电脑&#x…

数据驱动未来:构建下一代湖仓一体电商数据分析平台,引领实时商业智能革命

1.1 项目背景 本项目是一个创新的湖仓一体实时电商数据分析平台,旨在为电商平台提供深度的数据洞察和业务分析。技术层面,项目涵盖了从基础架构搭建到大数据技术组件的集成,采用了湖仓一体的设计理念,实现了数据仓库与数据湖的有…

NGINX项目实战

一、nginx四层代理 部署支持4层TCP/UDP代理的Nginx服务器 部署nginx服务器 编译安装必须要使用--with-stream参数开启4层代理模块。 [rootproxy ~]# rm -rf /usr/local/nginx/ #清理环境 [rootproxy nginx-1.16.1]# ./configure --with-http_ssl_module --with-stream #开…

Java 沙漏图案(Hour-glass Pattern)

给定正整数 n,以沙漏形式打印数字模式。示例: 输入:rows_no 7 输出: 1 2 3 4 5 6 7 2 3 4 5 6 7 3 4 5 6 7 4 5 6 7 5 6 7 6 7 7 6 7 5 6 7 4 5 6 7 3 4 5 6 7 2 3 4 5 6 7 1 2 3 4 5 6…

phpwamp集成环境中里在php7.1.5下安装php_redis扩展及mysql索引类型和索引方法笔记

一、phpwamp集成环境中里在php7.1.5下安装php_redis扩展 phpwamp集成环境使用起来非常方便,选择要启用的环境启动即可,可以非常方便地在apache,nginx,php各版本之间切换。启动后的界面如下图,不过在使用phpwamp的过程中&#xff0…