MySQL常用函数整理
MySQL常用函数整理
- sql函数分类
- 一、流程控制
- 1、判断值为null或空字符串
- 2、IF函数
- 3、IFNULL函数
- 4、CASE函数
- (1) 相当于switch case的作用
- (2) 相当于if elseif的作用
- 5、COALESCE函数
- 二、字符串类(GBT答案)
- 1、用于select、insert等子句中
- 2、用于where子句中
- 其他函数
在通过sql处理一些业务场景中,除了使用关联查询、子查询等一些常用sql方法外,还可以使用sql函数去处理,相比于在代码中直接处理,函数的使用清晰简单,往往能达到事半功倍的效果。
sql函数分类
常用SQL函数主要包括以下几类:数值类、字符串类、时间日期类、数据转换、流程控制。以下主要叙述以下流程控制类函数和字符串类函数,使用比较广泛,对于业务处理也最实用
一、流程控制
首先先列举一下比较运算符,可以使用在函数语句中
<=、>=、>、<>、
IS NULL、IS NOT NULL、
BETWEEN . . . AND. . . 、IN、NOT IN、LIKE、REGEXP(正则)
LEAST :当有两个或者多个参数时,返回其中的最小值。如果其中一个值为NULL,则
返回结果就为NULL。
GREATEST :当有两个或者多个参数时,返回其中的最大值。如果其中一个值为NULL.
则返回结果就为NULL。
1、判断值为null或空字符串
ISNULL(NAME)=1) //判断值为null,为NULL返回1,否则返回0
(LENGTH(trim(NAME))=0 //判断是否为空字符串,为空等于0,否则大于0
2、IF函数
语法:IF(表达式1,表达式2,表达式3)
如果表达式1为true,则执行表达式2,否则执行表达式3。类似于三目运算
作用于:select 查询语句:
SELECT
IF( ITASWITCH = 'Y', '是', '否' ) ITALEVEL
FROMt_logsmgt_rule
返回结果:

作用于:where条件语句:
SELECT*
FROMt_logsmgt_rule
WHERE
IF( ITASWITCH = 'N', 1, 0 )
只是用于模拟,具体使用还是得结合业务条件,结果如下:

3、IFNULL函数
IFNULL() 函数用于判断第一个表达式是否为 NULL,如果为 NULL 则返回第二个参数的值,如果不为 NULL 则返回第一个参数的值。
语法:IFNULL(表达式, 备用值)
这个有点类似于IF(ISNULL(xx),xx,yy)。就不过的赘述了。
SELECTIFNULL( PID, ID )
FROMt_logsmgt_rule;
4、CASE函数
(1) 相当于switch case的作用
CASE开始,END结束
WHEN条件,TEHN执行符合条件的表达式
ELSE以上条件都不符合执行的表达式
最简单的例子:
SELECT NAME,account,
CASEsex WHEN 1 THEN'男' WHEN 0 THEN'女' ELSE '不男不女' END AS sex
FROMt_user
结果如下:

(2) 相当于if elseif的作用
SELECT NAME,account,
CASEWHEN LENGTH( trim( NAME ) ) > 4 THEN'名字长的' ELSE '名字短的' END AS nameLen
FROMt_user

case函数当然也可以作用于where子句中,例如
SELECT column1, column2
FROM table_name
WHERE
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
ELSE result3
END;
其中,condition1和condition2是条件表达式,result1、result2和result3是对应条件的结果。如果条件表达式为真,则返回对应的结果,否则返回ELSE子句中的结果。chatGBT告诉我的。。。
5、COALESCE函数
COALESCE 函数接受多个参数,返回其中第一个非 NULL 的参数值。
SELECT COALESCE(name, email, 'Unknown') AS contact FROM users;
在上面的示例中,如果 name 列的值不为空,则返回 name 列的值;如果 name 列的值为空,但 email 列的值不为空,则返回 email 列的值;如果 name 和 email 列的值都为空,则返回字符串 ‘Unknown’。
二、字符串类(GBT答案)
1、用于select、insert等子句中
例如,假设有一张名为"users"的表,包含了用户的姓名和邮箱信息。我们可以使用上述字符串函数对这些信息进行处理和查询,例如:
连接字符串:
SELECT CONCAT(first_name, ’ ', last_name) AS full_name
FROM users;
截取字符串:
SELECT SUBSTRING(email, 1, 5) AS domain
FROM users;
计算字符串长度:
SELECT LENGTH(first_name) AS name_length
FROM users;
替换字符串:
SELECT REPLACE(email, ‘@’, ‘at’) AS modified_email
FROM users;
这些例子只是展示了如何在MySQL表中使用字符串函数。在实际的数据处理中,我们可以根据具体的需求和情况使用不同的字符串函数,以提高数据处理效率。
2、用于where子句中
使用LIKE和CONCAT函数筛选名字以"John"开头的数据行:
SELECT *
FROM users
WHERE CONCAT(first_name, ’ ', last_name) LIKE ‘John%’;
使用LIKE和SUBSTRING函数筛选邮箱域名为"email.com"的数据行:
SELECT *
FROM users
WHERE SUBSTRING(email, -10) LIKE ‘email.com’;
INSTR(str, substr)
INSTR函数用于返回字符串中子字符串的位置,如果未找到则返回0。例如:
SELECT *
FROM users
WHERE INSTR(email, ‘john’) > 0; – 匹配包含"john"的邮箱
TRIM(str)
TRIM函数用于删除字符串中的空格或指定的字符。例如:
SELECT *
FROM users
WHERE TRIM(first_name) = ‘John’; – 匹配名字为"John"的用户,忽略前后的空格
ASCII(char)
ASCII函数返回给定字符的ASCII码值。例如:
SELECT *
FROM users
WHERE ASCII(SUBSTR(first_name, 1, 1)) = 65; – 匹配名字首字母为’A’的用户
其他函数
列举一下:
聚合函数(Aggregate Functions):对一组数据进行聚合计算,如 SUM、AVG、MAX、MIN 等。
数学函数(Mathematical Functions):执行数学计算,如 ABS、CEILING、FLOOR、LOG、POWER、ROUND、SQRT 等。
日期和时间函数(Date and Time Functions):对日期和时间进行操作,如 CURDATE、CURTIME、DATE、TIME、YEAR、MONTH、DAY、HOUR、MINUTE、SECOND、NOW 等。
相关文章:
MySQL常用函数整理
MySQL常用函数整理sql函数分类一、流程控制1、判断值为null或空字符串2、IF函数3、IFNULL函数4、CASE函数(1) 相当于switch case的作用(2) 相当于if elseif的作用5、COALESCE函数二、字符串类(GBT答案)1、用于select、insert等子句中2、用于where子句中其…...
设计模式—“组件协作”
现代软件专业分工之后的第一个结果是“框架与应用程序的划分”,“组件协作”模式通过晚期绑定,来实现框架与应用程序之间的松耦合,是二者之间协作时常用的模式。 典型模式有:Template Method、Observer、Strategy 一、Template Method 动机 在软件构建过程中,对于某一…...
vue里使用driver.js实现项目功能向导指引
介绍 https://github.com/kamranahmedse/driver.js driver.js 是一个轻量级、无依赖的原生JavaScript引擎,在整个页面中驱动用户的注意力,强大的、高度可定制的原生JavaScript引擎,无外部依赖,支持所有主流浏览器。 安装 npm …...
详解JAVA类加载
目录 1.概述 2.双亲委派 3.ServiceClassLoader 4.URLClassLoader 5.加载冲突 1.概述 概念: 类加载器(Class Loader)是Java虚拟机(JVM)的一个重要组件,负责加载Java类到内存中并使其可以被JVM执行。类…...
高斯分布、高斯混合模型、EM算法详细介绍及其原理详解
相关文章 K近邻算法和KD树详细介绍及其原理详解朴素贝叶斯算法和拉普拉斯平滑详细介绍及其原理详解决策树算法和CART决策树算法详细介绍及其原理详解线性回归算法和逻辑斯谛回归算法详细介绍及其原理详解硬间隔支持向量机算法、软间隔支持向量机算法、非线性支持向量机算法详细…...
[Linux入门篇]一篇博客解决C/C++/Linux System Call文件操作接口的使用
目录 0.前言 1.C / C ->文件操作 1.1 C语言文件操作 1.1.1 C语言文件打开/关闭/写入 1.1.2 C语言文件的追加操作 1.1.3 C语言文件的读取 1.2 C语言文件操作 1.2.1 C文件打开 / 关闭 / 写入 1.2.2 C文件读取 1.2.3 文件追加 2.三个默认输入输出流 2.1 C语言中的三…...
数据结构和算法学习记录——删除有序数组中的重复项、合并两个有序数组
去重删除有序数组中的重复项题目来自:https://leetcode.cn/problems/remove-duplicates-from-sorted-array/description/题目描述给你一个 升序排列 的数组 nums ,请你原地删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数…...
FPGA实现模拟视频BT656解码 TW2867四路PAL采集拼接显示 提供工程源码和技术支持
目录1、前言2、模拟视频概述3、模拟视频颜色空间4、逐行与隔行5、BT656数据与解码BT656数据格式BT656数据解码6、TW2867芯片解读与配置TW2867芯片解读TW2867芯片配置TW2867时序分析7、设计思路与框架8、vivado工程详解9、上板调试验证10、福利:工程代码的获取1、前言…...
【建议收藏】超详细的Canal入门,看这篇就够了!!!
概述 canal是阿里巴巴旗下的一款开源项目,纯Java开发。基于数据库增量日志解析,提供增量数据订阅&消费,目前主要支持了MySQL(也支持mariaDB)。 背景 早期,阿里巴巴B2B公司因为存在杭州和美国双机房部…...
KubeSphere 社区双周报 | OpenFunction v1.0.0-rc.0 发布
KubeSphere 社区双周报主要整理展示新增的贡献者名单和证书、新增的讲师证书以及两周内提交过 commit 的贡献者,并对近期重要的 PR 进行解析,同时还包含了线上/线下活动和布道推广等一系列社区动态。 本次双周报涵盖时间为:2023.02.17-2023.…...
查漏补缺3月
SPI扩展序列化方式 分布式ID的相关问题 TCP的流量控制,避免浪费网络资源的滑动平均法也可以用在其他可能会出现资源浪费的情况等 讲一讲对自己这个 RPC 项目的想法,你是怎么设计这个项目的,想要实现那些功能? 你认为一个好的 RPC…...
如何使用Java实现类似Windows域登录
什么是域登录? 域登录是一种集中式身份验证和授权方法,用于访问企业内部网络和资源。在Windows环境中,域是一组计算机和用户帐户的集合,受到单个安全管理的控制。域登录允许用户在访问域资源时使用单个帐户名和密码进行身份验证&…...
生成模型与判别模型
生成模型与判别模型 一、决策函数Yf(X)或者条件概率分布P(Y|X) 监督学习的任务就是从数据中学习一个模型(也叫分类器),应用这一模型,对给定的输入X预测相应的输出Y。这个模型的一般形式为决策函数Yf(X)或者条件概率分布P(Y|X)。 …...
Kotlin lateinit 和 lazy 之间的区别 (翻译)
Kotlin 中的属性是使用var或val关键字声明的。Late init 和 lazy 都是用来初始化以后要用到的属性。 由于这两个关键字都用于声明稍后将要使用的属性,因此让我们看一下它们以及它们的区别。 Late Init 在下面的示例中,我们有一个变量 myClass࿰…...
Golang alpine Dockerfile 最小打包
最近在ubantu 上进行了 iris项目的alpine 版本打包,过程遇到了一些问题,记录一下。 golang版本 :1.18 系统:ubantu 代码结构 Dockfile内容 FROM alpine:latest MAINTAINER Si Wei<3320376695qq.com> ENV VERSION 1.1 ENV G…...
在NVIDIA JetBot Nano小车上更新WIFI驱动
前言:树莓派上的WIFI驱动类型比较多,经常有更好驱动的需求本文给出RealTek的无线WIFI模组,8821CU的驱动更新办法步骤第一 通过其他方式连接网络小车通过网线或者老的WIFI连接到网络上第二 构建驱动模块并下载驱动首先,我们需要打开一个ubuntu…...
2023年网络安全最应该看的书籍,弯道超车,拒绝看烂书
学习的方法有很多种,看书就是一种不错的方法,但为什么总有人说:“看书是学不会技术的”。 其实就是书籍没选对,看的书不好,你学不下去是很正常的。 一本好书其实不亚于一套好的视频教程,尤其是经典的好书…...
VSYNC研究
Vsync信号是SurfaceFlinger进程中核心的一块逻辑,我们主要从以下几个方面着手讲解。软件Vsync是怎么实现的,它是如何保持有效性的?systrace中看到的VSYNC信号如何解读,这些脉冲信号是在哪里打印的?为什么VSYNC-sf / VS…...
python gRPC:根据.protobuf文件生成py代码、grpc转换为http协议对外提供服务
文章目录python GRPC:根据.protobuf文件生成py代码grpcio-tools安装和使用python GRPC的官网示例grpc转换为http协议对外提供服务工作问题总结grpc-ecosystem/grpc-gateway/third_party/googleapis: warning: directory does not exist.python GRPC:根据…...
Allegro如何输出ODB文件操作指导
Allegro如何输出ODB文件操作指导 在PCB设计完成之后,需要输出生产文件用于生产加工,除了gerber文件可以用生产制造,ODB文件同样也可以用于生产,如下图 用Allegro如何输出ODB文件,具体操作如下 首先确保电脑上已经安装了ODB这个插件,版本不受限制点击File...
【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型
摘要 拍照搜题系统采用“三层管道(多模态 OCR → 语义检索 → 答案渲染)、两级检索(倒排 BM25 向量 HNSW)并以大语言模型兜底”的整体框架: 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后,分别用…...
OpenLayers 可视化之热力图
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 热力图(Heatmap)又叫热点图,是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...
树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法
树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作,无需更改相机配置。但是,一…...
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以? 在 Golang 的面试中,map 类型的使用是一个常见的考点,其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...
Debian系统简介
目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版ÿ…...
FastAPI 教程:从入门到实践
FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API,支持 Python 3.6。它基于标准 Python 类型提示,易于学习且功能强大。以下是一个完整的 FastAPI 入门教程,涵盖从环境搭建到创建并运行一个简单的…...
聊聊 Pulsar:Producer 源码解析
一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台,以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中,Producer(生产者) 是连接客户端应用与消息队列的第一步。生产者…...
【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)
🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...
C++八股 —— 单例模式
文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全(Thread Safety) 线程安全是指在多线程环境下,某个函数、类或代码片段能够被多个线程同时调用时,仍能保证数据的一致性和逻辑的正确性…...
华硕a豆14 Air香氛版,美学与科技的馨香融合
在快节奏的现代生活中,我们渴望一个能激发创想、愉悦感官的工作与生活伙伴,它不仅是冰冷的科技工具,更能触动我们内心深处的细腻情感。正是在这样的期许下,华硕a豆14 Air香氛版翩然而至,它以一种前所未有的方式&#x…...
