尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

MySQL 中常用函数使用

MySQL 中常用函数使用
📅 发布时间:2026/6/22 8:06:43

IF函数根据判断条件是否成立进行选择执行,成立时执行一条语句,不成立时执行另一条语句

语法结构:

IF(condition, value_if_true, value_if_false)

参数说明

  • condition: 判断条件
  • value_if_true: 如果 condition 的结果为 TRUE,返回该值
  • value_if_false: 如果 condition 的结果为 FALSE,返回该值

举例:

SELECT id, name,IF(age<18,'未成年','成年') AS '是否成年'
FROM student;

IFNULL()

IFNULL(expr1,expr2),如果 expr1 的值为 null,则返回 expr2 的值,如果 expr1 的值不为null,则返回 expr1 的值。

SELECT   IFNULL(1,0);  -- 输出结果:1   
SELECT   IFNULL(NULL,10); -- 输出结果:10   
SELECT   IFNULL(1/0,10);  -- 输出结果:10   
SELECT   IFNULL(1/0,'yes'); -- 输出结果:'yes' 
SELECT   IFNULL(NULL,'B');    -- 输出结果:B
SELECT   IFNULL('Hello','B'); -- 输出结果:Hello

NULLIF()

NULLIF(expr1,expr2),如果 expr1=expr2 成立,那么返回值为 null,否则返回值为 expr1 的值。

SELECT NULLIF('A','A');     -- 输出结果:null
SELECT NULLIF('A','B');     -- 输出结果:A

ISNULL()

ISNULL(expr),如果 expr 的值为 null,则返回 1,如果 expr1 的值不为 null,则返回 0。

SELECT ISNULL(NULL);        -- 输出结果:1
SELECT ISNULL('HELLO');     -- 输出结果:0

CASE

CASE表示函数开始,END表示函数结束。如果 expr1 成立,则返回 value1,如果 expr2 成立,则返回value2,当全部不成立则返回 valueN,而当有一个成立之后,后面的就不执行了。

SELECT CASE WHEN 1 > 0THEN '1 > 0'WHEN 2 > 0THEN '2 > 0'ELSE '3 > 0'END
#输出结果:1 > 0

如果表达式 expr 的值等于 e1,返回 value1;如果等于 e2,则返回 value2。否则返回 valueN。

SELECT CASE xfflag WHEN 1 THEN '结算账目'WHEN 2 THEN '消费账目'
ELSE '类型不对'

insert into

插入数据:插入数据时数据库会检查主键,如果出现重复会报错。

适用场景:适用于直接数据插入。

# 第一种方式
insert into 表名(字段名1,字段名2,...) values(值1,值2,...);# 第二种方式:按照表中所有字段进行插入数据,一定要与字段在表中定义的顺序一致
insert into  表名 values(值1,值2,...);

replace into
插入替换数据:数据表中有 PrimaryKey,或者 unique 索引,如果数据库已经存在数据,则用新数据替换,如果没有数据效果则和 insert into 一样。

适用场景:适用于第一次数据插入时有些字段的数据出现了丢失,再次插入的时候希望通过唯一键更新数据而不再重复插入新数据。

# 第一种方式
replace into 表名(字段名1,字段名2,...) values(值1,值2,...);# 第二种方式:按照表中所有字段进行插入数据,一定要与字段在表中定义的顺序一致
replace into 表名 values(值1,值2,...);

insert ignore

插入忽略数据:如果已经存在相同的记录,则忽略当前新数据;

适用场景:适用于数据已经插入,再次插入的时候希望通过唯一键信息,跳过已经插入的数据。

# 第一种方式
insert ignore into 表名(字段名1,字段名2,...) values(值1,值2,...);# 第二种方式:按照表中所有字段进行插入数据,一定要与字段在表中定义的顺序一致
insert ignore into 表名 values(值1,值2,...);

注:对于以上三种方法,如果表中没有设置主键或唯一索引;则效果都是一样的,即直接插入数据

UPSERT
INSERT INTO … ON DUPLICATE KEY UPDATE 是 MySQL 中一种用于插入数据并处理重复键冲突的语法。

这个语法适用于在 insert 的时候,如果 insert 的数据会引起唯一索引(包括主键索引)的冲突,即唯一值重复了,则不会执行 insert 操作,而执行后面的 update 操作,使用给定的新值来更新冲突行中的列。

一般 Update子句可以使用 VALUES(col_name) 获取 insert 部分的值。也是项目中使用最多的方式。

注意:VALUES()函数只在INSERT…UPDATE语句中有意义,其它时候会返回NULL。

INSERT INTO student(Sno, Sname, Ssex, Sage, Sdept)
VALUES("201215121", "李勇", "男", 30, "CS")
on DUPLICATE key UPDATE Sage=values(Sage);
mysql> select * from student;
+-----------+--------+------+------+-------+
| Sno       | Sname  | Ssex | Sage | Sdept |
+-----------+--------+------+------+-------+
| 201215121 | 李勇   | 男   |   18 | CS    |
| 201215122 | 刘晨   | 女   |   19 | CS    |
| 201215123 | 王敏   | 女   |   18 | MA    |
| 201215125 | 张立   | 男   |   19 | IS    |
+-----------+--------+------+------+-------+
4 rows in set (0.00 sec)mysql> INSERT INTO student(Sno, Sname, Ssex, Sage, Sdept)-> VALUES("201215121", "李勇", "男", 30, "CS")-> on DUPLICATE key UPDATE Sage=values(Sage);
Query OK, 2 rows affected (0.01 sec)mysql> select * from student;
+-----------+--------+------+------+-------+
| Sno       | Sname  | Ssex | Sage | Sdept |
+-----------+--------+------+------+-------+
| 201215121 | 李勇   | 男   |   30 | CS    |
| 201215122 | 刘晨   | 女   |   19 | CS    |
| 201215123 | 王敏   | 女   |   18 | MA    |
| 201215125 | 张立   | 男   |   19 | IS    |
+-----------+--------+------+------+-------+
4 rows in set (0.00 sec)

 



相关新闻

  • 代码大全2阅读1
  • 软件工程学习日志2025.10.30
  • 软件工程学习日志2025.10.31

最新新闻

  • Cursor Composer 2.5:Targeted RL驱动的工程级AI编程协作者
  • 智能网联汽车安全实战:从CAN总线到车载以太网的渗透测试与防御
  • 2026年天津商业空间工装公司深度横评:办公室、门店、连锁整装一站式选型指南 - 精选优质企业推荐官
  • AI产品原型工具有哪些?2026最新推荐
  • 2026武汉上门黄金回收靠谱吗?实测5家正规门店,禹竞名奢汇全城可约、当场称重秒结 - 名奢变现站
  • 2026 上海纯种犬舍避坑甄选指南 CKU 溯源书面质保无套路繁育十大榜单.doc - 资讯报道

日新闻

  • 2026速览惠州叛逆青少年学校前十大排名名单出炉 - 武汉中职最新信息发布
  • 2026上饶白蚁消杀哪家好?15年本土2大权威白蚁防治公司推荐(金盾虫控/青蚁卫士) - 我叫一
  • 天龙八部单机版终极数据管理工具:5个技巧快速掌握游戏数据编辑

周新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号