MySQL常用函数(总结)详细版
1. 字符串函数
CONCAT(str1, str2, ...):将多个字符串连接成一个字符串。
SELECT CONCAT('Hello', ' ', 'World');
LENGTH(str):返回字符串的长度(字节数)。
SELECT LENGTH('Hello');
SUBSTRING(str, pos, len):从字符串str的pos位置开始,截取长度为len的子字符串。
SELECT SUBSTRING('Hello World', 7, 5); -- 返回 'World'
REPLACE(str, from_str, to_str):将字符串中的from_str替换为to_str。
SELECT REPLACE('Hello World', 'World', 'MySQL');
UPPER(str)/LOWER(str):将字符串转换为大写或小写。
c
SELECT UPPER('hello'); -- 返回 'HELLO'
INSTR(str, substr):返回子字符串substr在字符串str中首次出现的位置(从1开始),如果没有找到则返回0。
SELECT INSTR('Hello World', 'World'); -- 返回7
LPAD(str, len, padstr)/RPAD(str, len, padstr):在字符串左侧或右侧用padstr填充,使字符串达到指定长度len。
SELECT LPAD('123', 5, '0'); -- 返回 '00123'
TRIM([remstr] FROM str):移除字符串str左侧或右侧的指定字符remstr(默认为空格)。
SELECT TRIM(' Hello '); -- 返回 'Hello'
REPEAT(str, count):重复字符串str,count次。
SELECT REPEAT('abc', 3); -- 返回 'abcabcabc'
REVERSE(str):返回字符串str的逆序。
SELECT REVERSE('abc'); -- 返回 'cba'
2. 日期和时间函数
NOW():返回当前日期和时间。
SELECT NOW();-- '2024-08-05 17:42:56'
CURDATE():返回当前日期,不带时间部分。
SELECT CURDATE();-- '2024-08-05'
DATE_FORMAT(date, format):按照指定的格式返回日期值。
SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s');-- '2024-08-05 17:45:07'SELECT DATE_FORMAT(NOW(), '%Y-%m-%d');-- '2024-08-05'
DATE_ADD(date, INTERVAL expr unit):在指定日期上添加时间间隔。
SELECT DATE_ADD(NOW(), INTERVAL 7 DAY); -- 当前日期加7天 '2024-08-12 17:46:29'
DATEDIFF(date1, date2):返回两个日期之间的天数差。
SELECT DATEDIFF('2024-12-31', '2024-01-01'); -- 返回364
YEAR(date)/MONTH(date)/DAY(date):分别返回日期的年、月、日部分。
SELECT YEAR('2024-09-05'); -- 返回 2024
SELECT MONTH('2024-09-05'); -- 返回 9
SELECT DAY('2024-09-05'); -- 返回 5
DAYNAME(date)/MONTHNAME(date):返回日期对应的星期几或月份名称。
SELECT DAYNAME('2024-09-05'); -- 返回 'Thursday'
SELECT MONTHNAME('2024-09-05'); -- 返回 'September'
WEEK(date)/WEEKDAY(date):返回日期属于一年中的第几周(从0开始),WEEKDAY返回该日期是星期几(0为星期一,6为星期日)。
SELECT WEEK('2024-09-05'); -- 返回 36(表示第36周)
SELECT WEEKDAY('2024-09-05'); -- 返回 3(表示星期四)
TIME(date):从日期或时间值中提取时间部分。
SELECT TIME('2024-09-05 12:30:45'); -- 返回 '12:30:45'
TIMESTAMPDIFF(unit, datetime1, datetime2):返回两个日期或时间的差值,单位可以是SECOND,MINUTE,HOUR,DAY,MONTH,YEAR等。
SELECT TIMESTAMPDIFF(DAY, '2024-01-01', '2024-12-31'); -- 返回 364
STR_TO_DATE(str, format):根据给定的格式将字符串转换为日期。
SELECT STR_TO_DATE('01-09-2024', '%d-%m-%Y'); -- 返回 '2024-09-01'
3. 数值函数
ABS(x):返回数值x的绝对值。
SELECT ABS(-5); -- 返回 5
ROUND(x, d):将数值x四舍五入到d位小数。
SELECT ROUND(123.4567, 2); -- 返回 123.46
FLOOR(x)/CEIL(x):返回小于或等于x的最大整数(向下取整)或大于或等于x的最小整数(向上取整)。
SELECT FLOOR(2.9); -- 返回 2
SELECT CEIL(2.1); -- 返回 3
MOD(x, y):返回x除以y的余数。
SELECT MOD(10, 3); -- 返回 1
POWER(x, y):返回x的y次幂。
SELECT POWER(2, 3); -- 返回 8
RAND():返回一个 0 到 1 之间的随机浮点数。
SELECT RAND(); -- 可能返回例如 0.548973
SIGN(x):返回数值x的符号,1 表示正数,-1 表示负数,0 表示零。
SELECT SIGN(-10); -- 返回 -1
SQRT(x):返回数值x的平方根。
SELECT SQRT(16); -- 返回 4
EXP(x):返回数值x的自然指数(e^x)。
SELECT EXP(1); -- 返回 2.718281828
LOG(x)/LOG10(x):返回数值x的自然对数(以e为底)或以10为底的对数。
SELECT LOG(2.71828); -- 返回约 1
SELECT LOG10(1000); -- 返回 3
4. 聚合函数
COUNT(expression):返回某列中的记录数。
SELECT COUNT(*) FROM orders;
SUM(expression):返回某列中数值的总和。
SELECT SUM(order_amount) FROM orders;
AVG(expression):返回某列中数值的平均值。
SELECT AVG(salary) FROM employees;
MAX(expression)/MIN(expression):返回某列的最大值或最小值。
SELECT MAX(salary) FROM employees;
SELECT MIN(salary) FROM employees;
5. 控制流函数
IF(condition, true_value, false_value):如果condition为真,返回true_value,否则返回false_value。
SELECT IF(1 > 0, 'Yes', 'No'); -- 返回 'Yes'
CASE:用于条件判断,类似于多路选择。
SELECT CASE WHEN salary > 10000 THEN 'High'WHEN salary BETWEEN 5000 AND 10000 THEN 'Medium'ELSE 'Low'END AS salary_range
FROM employees;
COALESCE: 用于返回第一个非空(非NULL)的值。它可以用于处理可能包含NULL值的列,确保在结果中不出现NULL。
COALESCE(value1, value2, ..., valueN)
-- 1. 基本用法
SELECT COALESCE(NULL, NULL, 'First Non-NULL', 'Another Value')
AS Result;-- 'First Non-NULL'-- 2.处理列值
SELECT employee_id, COALESCE(phone_number, 'No Phone Number') AS phone
FROM employees;
-- 如果 phone_number 列的值是 NULL,则结果将是 'No Phone Number'。-- 3.与其他函数配合使用
SELECT employee_id, COALESCE(start_date, CURRENT_DATE) AS start
FROM employees;
-- 如果 start_date 列的值是 NULL,则使用当前日期作为默认值。
6. 加密与解密函数
MD5(str):返回字符串str的 MD5 哈希值(128位)。
SELECT MD5('password');
SHA1(str):返回字符串str的 SHA-1 哈希值(160位)。
SELECT SHA1('password');
7. 类型转换函数
CAST(expression AS type):将某个值转换为指定的类型。
SELECT CAST('123' AS UNSIGNED); -- 将字符串'123'转换为无符号整数
CONVERT(expression, type):类似于CAST,用于类型转换。
SELECT CONVERT('2024-01-01', DATE); -- 将字符串转换为日期类型
8. JSON函数
JSON_EXTRACT(json_doc, path):从 JSON 文档中提取指定路径的值。
SELECT JSON_EXTRACT('{"name": "Alice", "age": 30}', '$.name');
JSON_OBJECT(key, value, ...):创建一个 JSON 对象。
SELECT JSON_OBJECT('name', 'Alice', 'age', 30);
JSON_ARRAY():创建一个 JSON 数组。
SELECT JSON_ARRAY('apple', 'banana', 'cherry');
JSON_CONTAINS(json_doc, val[, path]):检查 JSON 文档中是否包含指定的值。
SELECT JSON_CONTAINS('["apple", "banana"]', '"apple"');
JSON_UNQUOTE(json_val):移除 JSON 文本中的引号。
SELECT JSON_UNQUOTE('"Hello"'); -- 返回 'Hello'相关文章:
MySQL常用函数(总结)详细版
1. 字符串函数 CONCAT(str1, str2, ...):将多个字符串连接成一个字符串。 SELECT CONCAT(Hello, , World); LENGTH(str):返回字符串的长度(字节数)。 SELECT LENGTH(Hello); SUBSTRING(str, pos, len):从字符串 …...
学习记录——day41 C++ 类的静态成员 static
静态成员,是类中不依赖于类对象而独立存在的成员变量,但仍然属于类,是成员的一种 静态成员的空间分配发生在出现编译阶段,不占用类的空间 静态成员分为,静态成员变量和静态成员函数 静态成员变量 1、相关概念 1&…...
JVM - Java内存区域
文章目录 目录 文章目录 运行时数据区域 程序计数器 栈 Java虚拟机栈 本地方法栈 栈帧的组成 局部变量表 操作数栈 帧数据 堆 方法区 直接内存 总结 运行时数据区域 Java虚拟机在执行Java程序的过程中会把它所管理的内存区域划分为若干个不同的数据区域。这些区…...
本地电脑交叉编译ffmpeg 到 windows on arm64
本地电脑交叉编译ffmpeg 到 windows on arm64 我这里有编译好的win on arm 的 ffmpeg : https://github.com/wmx-github/ffmpeg-wos-arm64-build 使用 llvm-mingw 工具链 https://github.com/mstorsjo/llvm-mingw/releases 前缀 aarch64-w64-mingw32- 这个库是ubuntu 交叉编译…...
使用 @NotEmpty、@NotBlank、@NotNull 注解进行参数校验
使用 NotEmpty、NotBlank、NotNull 注解进行参数校验 一、前言二、依赖三、使用 NotEmpty、NotBlank、NotNull 注解进行参数校验1. NotNull2. NotEmpty3. NotBlank4. 区别与适用场景 四、实践中的应用五、总结 一、前言 在 Java 开发中,参数校验是确保数据一致性和…...
关于Qt在子线程中使用通讯时发生无法接收数据的情况
在多线程应用中,串口通讯或TCP通讯的场景常常涉及到持续的读写操作,如果子线程处理不当,可能会导致信号阻塞问题。本文将通过串口通讯或TCP通讯为例,详细解释如何在多线程环境中避免信号阻塞,并提供代码示例。 1. 问题…...
HTML:从历史演进到未来创新的网页基石
该论文为AI生成,请勿运用到正式的论文上,以下仅供参考 一、引言 1.1 研究背景 HTML(Hypertext Markup Language)作为网页构建的基础语言,在互联网的发展历程中占据着至关重要的地位。自 1993 年诞生以来,…...
向量的叉积、点积、外积
向量的叉积、点积和外积是向量代数中非常重要的操作,用于描述向量间的关系。它们广泛应用于物理、计算机图形学、几何以及蛋白质结构分析等领域。下面对每个运算进行详细介绍,并通过 PyTorch 示例代码展示其实现。 1. 点积 (Dot Product) 点积是两个向量之间的数量积,结果…...
UNI-APP 溢出隐藏显示省略号
✍经常在项目里面使用到,又没有记住懒得找了,故此写一篇记录一下! CSS单行显示省略号 /* CSS样式 */ .ellipsis {overflow: hidden; /* 隐藏超出的内容 */text-overflow: ellipsis; /* 显示省略号 */white-space: nowrap; /* 不换行 */ } CS…...
SAP学习笔记 - 开发03 - CDSView开发环境搭建,Eclipse中连接SAP,CDSView创建
上一章讲了BTP的账号创建,环境搭建等内容。 SAP学习笔记 - 开发02 - BTP实操流程(账号注册,BTP控制台,BTP集成开发环境搭建)-CSDN博客 本章继续讲SAP开发。 - CDSView 的开发环境(Eclipse)搭建…...
uniapp写的一个年月日时分秒时间选择功能
代码: <template><view><picker mode"multiSelector" :value"multiIndex" :range"multiRange" change"onMultiChange"><view class"picker">当前选择:{{ formattedDateTime }}</vie…...
golang hertz框架入门
两种模式新建项目 1、手动新建项目 2、使用hz工具新建项目 一、手动创建项目,并拉取框架 1、新建项目目录 hertz_demo_w 2、在项目跟目录新建main.go 文件 package mainimport ("context""github.com/cloudwego/hertz/pkg/app""github.…...
Android Home应用程序启动流程
Android系统在启动时安装应用程序的过程,这些应用程序安装好之后,还需要有一个Home应用程序来负责把它们在桌面上展示出来,在Android系统中,这个默认的Home应用程序就是Launcher了,本文将详细分析Launcher应用程序的启…...
C++笔试强训12、13、14
文章目录 笔试强训12一、选择题1-5题6-10题 二、编程题题目一题目二 笔试强训13一、选择题1-5题6-10题 二、编程题题目一题目二 笔试强训14一、选择题1-5题6-10题 二、编程题题目一题目二 笔试强训12 一、选择题 1-5题 引用:是一个别名,与其被引用的实…...
Excel和Word日常使用记录:
Excel使用总结 表格颜色填充: 合并单元格: 选中你要合并的单元格区域。 按下快捷键 Alt H,然后松开这些键。 再按下 M,接着按 C。 这个组合键执行的操作是:Alt H:打开“主页”选项卡。 M:选…...
用Git把本地仓库上传到远程仓库
用Git把本地仓库上传到远程仓库 GitHub创建远程仓库 在创建新仓库界面里输入你的仓库名后点击Create repository就好了。 创建本地项目 当你已经有一个项目后在命令行输入如下指令即可 git init git commit -m "first commit" git branch -M main git remote a…...
OneHotEncoder一个不太合理的地方
OneHotEncoder,在Xtrain上fit,在Xtest上transform 如果遇到某个值出现在Xtest,而没有在Xtrain出现过时,会抛出如下错误: OneHotEncoder Found unknown categories [xxx] in column xx during transform OneHotEncoder …...
如何修复软件中的BUG
笔者上一篇博文《如何开发出一款优秀的软件》主要讲了如何开发一款优秀的软件及相应的必要条件。但对一个已上线,已经成型的产品,该如何解决存在的bug呢?这是本文要阐述的内容。 在这里,首先说一下bug的种类及bug严重程度分类&…...
分享一个基于微信小程序的医院挂号就诊一体化平台uniapp医院辅助挂号应用小程序设计(源码、调试、LW、开题、PPT)
💕💕作者:计算机源码社 💕💕个人简介:本人 八年开发经验,擅长Java、Python、PHP、.NET、Node.js、Android、微信小程序、爬虫、大数据、机器学习等,大家有这一块的问题可以一起交流&…...
HTML生日蛋糕
目录 写在前面 完整代码 代码分析 系列文章 写在最后 写在前面 HTML实现的生日蛋糕来喽,小编亲测,发给好友可以直接打开哦。在代码的第183行可以写下对朋友的祝福,快拿去送给你的好朋友吧! 完整代码 <!DOCTYPE html>…...
从怀疑到真香!2026我日常办公离不开的这款在线文字转换器太好用了
刚入职那半年我踩过太多坑:一周三次新人培训,怕漏记知识点全程录音,下课手动整理1小时录音要熬3小时,知识点散得根本没法复习;部门周会做完记录,散会就要我出整理好的纪要,赶工赶得饭都吃不上&a…...
保姆级教程:在ROS2 Humble/Foxy的Gazebo中配置RGB-D相机(附解决点云颜色/坐标问题)
ROS2 Humble/Foxy中Gazebo深度相机仿真全攻略:从配置到点云问题解决在机器人仿真开发中,深度相机(RGB-D)是不可或缺的传感器之一。它能够同时提供彩色图像和深度信息,为SLAM、物体识别、避障等任务提供关键数据支持。本…...
从入门到上岗,Java+AI 复合型人才养成攻略
当下编程行业格局正在悄然改变,纯 Java 后端岗位内卷日趋严重,薪资增长逐步放缓;纯粹的 AI 算法岗门槛居高不下,对学历、数理功底要求严苛,普通开发者很难入局。 而Java+AI 复合型开发顺势成为行业刚需岗位,既依托成熟的 Java 体系承接业务开发,又能融入人工智能技术实…...
飞书远程控机:OpenClaw配置全攻略
本文详细介绍如何通过 OpenClaw 工具对接飞书开放平台,配置智能机器人实现 Windows 电脑的远程控制。主要内容涵盖文件管理和程序启动等核心功能的实现方法,并提供完整的配置指南与常见问题解决方案。 一、使用前提说明 1. 系统要求 仅适用于 Windows…...
SkillVLA:通过技能复用应对双-臂操纵中的组合多样性
26年3月来自新加坡国立、北京中关村学院、上海创新研究院、上海AI实验室、上海交大和复旦的论文“SkillVLA: Tackling Combinatorial Diversity in Dual-Arm Manipulation via Skill Reuse”。 视觉-语言-动作(VLA)模型近期取得的进展,已充分…...
金融合规审核为何人力堆积却仍漏洞百出?2026年RegTech演进与Agent全链路闭环解决方案
在2026年的金融监管环境下,合规审核已不再是简单的“查漏补缺”,而是演变为一场高强度的算力与逻辑博弈。尽管金融机构在合规成本上的投入逐年攀升,甚至不惜以“人海战术”填补流程断点,但监管罚单的数额与频率却并未显著下降。这…...
PCL 法向量夹角剔除错误匹配点对【2026最新版】
目录 一、 算法简介 1、主要函数 2、参考文献 二、 代码实现 三、 结果展示 四、 参考链接 博客长期更新,本文最新更新时间为:2026年5月24日。代码在PCL1.15.1中测试通过 一、 算法简介 在三维点云配准中,对应点(correspondence)的准确性直接决定了配准算法的精度和鲁棒性…...
Elden Ring帧率解锁终极指南:从60帧到144+的完整教程
Elden Ring帧率解锁终极指南:从60帧到144的完整教程 【免费下载链接】EldenRingFpsUnlockAndMore A small utility to remove frame rate limit, change FOV, add widescreen support and more for Elden Ring 项目地址: https://gitcode.com/gh_mirrors/el/Elden…...
别再手动维护接口文档了!用Spring Boot 3和Swagger 3实现代码与文档的自动同步
Spring Boot 3与Swagger 3:构建零维护成本的API文档工作流 每次接口变更都要手动更新文档?团队成员总是抱怨文档与实际接口不一致?在敏捷开发时代,传统文档维护方式已成为拖累工程效率的典型痛点。本文将揭示如何通过Spring Boot …...
Nacos CVE-2021-29441漏洞深度解析:User-Agent绕过与鉴权失效
1. 这个漏洞不是“改个Header就能登录”,而是Nacos鉴权体系的一道裂缝CVE-2021-29441这个编号在Nacos社区里曾被轻描淡写地归为“低危”,直到我接手一个金融客户线上告警——他们的Nacos集群在凌晨三点被批量创建了37个高权限用户,所有操作日…...
