当前位置: 首页 > news >正文

MySQL常用函数(总结)详细版

1. 字符串函数

  • CONCAT(str1, str2, ...):将多个字符串连接成一个字符串。
SELECT CONCAT('Hello', ' ', 'World');
  • LENGTH(str):返回字符串的长度(字节数)。
SELECT LENGTH('Hello');
  • SUBSTRING(str, pos, len):从字符串 strpos 位置开始,截取长度为 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):重复字符串 strcount 次。
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):返回 xy 次幂。
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 年诞生以来&#xff0c…...

向量的叉积、点积、外积

向量的叉积、点积和外积是向量代数中非常重要的操作,用于描述向量间的关系。它们广泛应用于物理、计算机图形学、几何以及蛋白质结构分析等领域。下面对每个运算进行详细介绍,并通过 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">当前选择&#xff1a;{{ formattedDateTime }}</vie…...

golang hertz框架入门

两种模式新建项目 1、手动新建项目 2、使用hz工具新建项目 一、手动创建项目&#xff0c;并拉取框架 1、新建项目目录 hertz_demo_w 2、在项目跟目录新建main.go 文件 package mainimport ("context""github.com/cloudwego/hertz/pkg/app""github.…...

Android Home应用程序启动流程

Android系统在启动时安装应用程序的过程&#xff0c;这些应用程序安装好之后&#xff0c;还需要有一个Home应用程序来负责把它们在桌面上展示出来&#xff0c;在Android系统中&#xff0c;这个默认的Home应用程序就是Launcher了&#xff0c;本文将详细分析Launcher应用程序的启…...

C++笔试强训12、13、14

文章目录 笔试强训12一、选择题1-5题6-10题 二、编程题题目一题目二 笔试强训13一、选择题1-5题6-10题 二、编程题题目一题目二 笔试强训14一、选择题1-5题6-10题 二、编程题题目一题目二 笔试强训12 一、选择题 1-5题 引用&#xff1a;是一个别名&#xff0c;与其被引用的实…...

Excel和Word日常使用记录:

Excel使用总结 表格颜色填充&#xff1a; 合并单元格&#xff1a; 选中你要合并的单元格区域。 按下快捷键 Alt H&#xff0c;然后松开这些键。 再按下 M&#xff0c;接着按 C。 这个组合键执行的操作是&#xff1a;Alt H&#xff1a;打开“主页”选项卡。 M&#xff1a;选…...

用Git把本地仓库上传到远程仓库

用Git把本地仓库上传到远程仓库 GitHub创建远程仓库 在创建新仓库界面里输入你的仓库名后点击Create repository就好了。 创建本地项目 当你已经有一个项目后在命令行输入如下指令即可 git init git commit -m "first commit" git branch -M main git remote a…...

OneHotEncoder一个不太合理的地方

OneHotEncoder&#xff0c;在Xtrain上fit&#xff0c;在Xtest上transform 如果遇到某个值出现在Xtest&#xff0c;而没有在Xtrain出现过时&#xff0c;会抛出如下错误&#xff1a; OneHotEncoder Found unknown categories [xxx] in column xx during transform OneHotEncoder …...

如何修复软件中的BUG

笔者上一篇博文《如何开发出一款优秀的软件》主要讲了如何开发一款优秀的软件及相应的必要条件。但对一个已上线&#xff0c;已经成型的产品&#xff0c;该如何解决存在的bug呢&#xff1f;这是本文要阐述的内容。 在这里&#xff0c;首先说一下bug的种类及bug严重程度分类&…...

分享一个基于微信小程序的医院挂号就诊一体化平台uniapp医院辅助挂号应用小程序设计(源码、调试、LW、开题、PPT)

&#x1f495;&#x1f495;作者&#xff1a;计算机源码社 &#x1f495;&#x1f495;个人简介&#xff1a;本人 八年开发经验&#xff0c;擅长Java、Python、PHP、.NET、Node.js、Android、微信小程序、爬虫、大数据、机器学习等&#xff0c;大家有这一块的问题可以一起交流&…...

HTML生日蛋糕

目录 写在前面 完整代码 代码分析 系列文章 写在最后 写在前面 HTML实现的生日蛋糕来喽&#xff0c;小编亲测&#xff0c;发给好友可以直接打开哦。在代码的第183行可以写下对朋友的祝福&#xff0c;快拿去送给你的好朋友吧&#xff01; 完整代码 <!DOCTYPE html>…...

简易版抽奖活动的设计技术方案

1.前言 本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及…...

uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖

在前面的练习中&#xff0c;每个页面需要使用ref&#xff0c;onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入&#xff0c;需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...

2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面

代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口&#xff08;适配服务端返回 Token&#xff09; export const login async (code, avatar) > {const res await http…...

第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明

AI 领域的快速发展正在催生一个新时代&#xff0c;智能代理&#xff08;agents&#xff09;不再是孤立的个体&#xff0c;而是能够像一个数字团队一样协作。然而&#xff0c;当前 AI 生态系统的碎片化阻碍了这一愿景的实现&#xff0c;导致了“AI 巴别塔问题”——不同代理之间…...

【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)

升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点&#xff0c;但无自动故障转移能力&#xff0c;Master宕机后需人工切换&#xff0c;期间消息可能无法读取。Slave仅存储数据&#xff0c;无法主动升级为Master响应请求&#xff…...

华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建

华为云FlexusDeepSeek征文&#xff5c;DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色&#xff0c;华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型&#xff0c;能助力我们轻松驾驭 DeepSeek-V3/R1&#xff0c;本文中将分享如何…...

如何理解 IP 数据报中的 TTL?

目录 前言理解 前言 面试灵魂一问&#xff1a;说说对 IP 数据报中 TTL 的理解&#xff1f;我们都知道&#xff0c;IP 数据报由首部和数据两部分组成&#xff0c;首部又分为两部分&#xff1a;固定部分和可变部分&#xff0c;共占 20 字节&#xff0c;而即将讨论的 TTL 就位于首…...

day36-多路IO复用

一、基本概念 &#xff08;服务器多客户端模型&#xff09; 定义&#xff1a;单线程或单进程同时监测若干个文件描述符是否可以执行IO操作的能力 作用&#xff1a;应用程序通常需要处理来自多条事件流中的事件&#xff0c;比如我现在用的电脑&#xff0c;需要同时处理键盘鼠标…...

PH热榜 | 2025-06-08

1. Thiings 标语&#xff1a;一套超过1900个免费AI生成的3D图标集合 介绍&#xff1a;Thiings是一个不断扩展的免费AI生成3D图标库&#xff0c;目前已有超过1900个图标。你可以按照主题浏览&#xff0c;生成自己的图标&#xff0c;或者下载整个图标集。所有图标都可以在个人或…...

【大模型】RankRAG:基于大模型的上下文排序与检索增强生成的统一框架

文章目录 A 论文出处B 背景B.1 背景介绍B.2 问题提出B.3 创新点 C 模型结构C.1 指令微调阶段C.2 排名与生成的总和指令微调阶段C.3 RankRAG推理&#xff1a;检索-重排-生成 D 实验设计E 个人总结 A 论文出处 论文题目&#xff1a;RankRAG&#xff1a;Unifying Context Ranking…...