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>…...
Hermes社区贡献指南:如何参与项目开发和提交PR
Hermes社区贡献指南:如何参与项目开发和提交PR 【免费下载链接】hermes Golang package that generates clean, responsive HTML e-mails for sending transactional mail 项目地址: https://gitcode.com/gh_mirrors/he/hermes 想要为Hermes电子邮件生成库贡…...
为什么要使用幂等防重复提交,它的逻辑是什么对比其他的来说有什么优势
好,这个问题非常关键,尤其是在金融、支付、电商、表单提交流水线等场景,理解“为什么用幂等 防重复提交”和“它和其他方案比的优势”是做高可靠系统的核心。一、为什么要做幂等防重复提交?1️⃣ 重复请求是现实世界里的必然在真…...
百度网盘提取码智能查询工具:3秒破解资源访问密码的终极方案
百度网盘提取码智能查询工具:3秒破解资源访问密码的终极方案 【免费下载链接】baidupankey 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 还在为百度网盘加密资源而困扰吗?当你急需下载学习资料、软件安装包或娱乐资源时࿰…...
镜像视界|AI智能体驱动的无感定位系统:从识别到控制的跃迁副标题:融合行为建模与轨迹预测的空间级目标管理体系
镜像视界|AI智能体驱动的无感定位系统:从识别到控制的跃迁——融合行为建模与轨迹预测的空间级目标管理体系一、范式升级:AI正在从“工具”进化为“智能体”在传统视频与AI系统中,人工智能的角色长期被定义为“工具”:…...
源码级解耦:企业级 AI 视频平台的微服务架构设计与二次开发实战
引言:定制化需求的“最后一公里”难题 在安防 AI 项目的交付链条中,集成商和技术团队往往处于一个尴尬的境地:市面上的成熟 SaaS 平台虽然开箱即用,但缺乏核心的源码级定制能力,一旦遇到客户特殊的业务逻辑(…...
3大核心突破:解密m4s-converter如何实现B站缓存视频的智能重生
3大核心突破:解密m4s-converter如何实现B站缓存视频的智能重生 【免费下载链接】m4s-converter 一个跨平台小工具,将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter 你是否曾面对B站缓存目…...
基于单片机的无线病床呼叫系统(有完整资料)
资料查找方式:特纳斯电子(电子校园网):搜索下面编号即可编号:T4092204C设计简介:本设计是基于单片机的无线病床呼叫系统,主要实现以下功能:1、按下呼叫按钮,液晶显示器显…...
CW32L012FOC开源项目推进
作为一枚合格的“职场摸鱼学”实践者(手动狗头),我坚决不建议在长假结束后立刻全身心扎进任务清单。那太不“可持续发展”了。 所以,今天上午,我可以理直气壮地把“整理工位”作为最高优先级。说得具体点,…...
【Proteus 仿真实战】基于51单片机的智能测距与自适应报警系统设计
1. 项目背景与核心功能 最近在做一个基于51单片机的智能测距系统仿真项目,发现很多初学者对如何实现自适应报警功能特别感兴趣。这个项目最吸引人的地方在于它不仅仅是个简单的距离测量装置,而是能根据危险程度自动调整报警策略的智能系统。想象一下&…...
宝塔面板备份翻车实录:我是如何用rclone+阿里云OSS实现自动化异地容灾的
宝塔面板数据安全实战:从备份翻车到自动化异地容灾 凌晨三点,服务器硬盘的物理损坏警报声把我从睡梦中惊醒。登录宝塔面板后,眼前一片空白——过去半年的网站数据与客户资料全数消失。更讽刺的是,前一天刚执行过本地备份ÿ…...
