MySql几个函数及语法

1. 几个函数

1.1 IFNULL

返回两个字段中第一个不为NULL的值

SELECT IFNULL(NULL, 1)
# 1

1.2 GREATEST

返回多个字段中最大值

SELECT GREATEST(3, 2, 5, 1)
# 5

1.3 LEAST

返回多个字段中最小值

SELECT LEAST(3, 2, 5, 1)
# 1

1.4 CURDATE

获取当前日期

SELECT CURDATE()
# 2020-10-16

2. 几个语法

2.1 CASE WHEN

SELECT CASE sex WHEN 1 THEN '男' WHEN 2 THEN '女' ELSE '未知' END AS sex FROM xxx;
SELECT CASE WHEN age >= 18 THEN '成年' WHEN age > 0 THEN '未成年' ELSE '未知' END AS `type` FROM xxx;

2.2 INSERT INTO … ON DUPLICATE KEY UPDATE …

若插入的数据的主键或唯一索引不存在于目标表中则执行插入否则根据UPDATE后面的逻辑进行更新

INSERT INTO xxx(a, b, c) VALUES(1, 2, 3), (3, 4, 5) ON DUPLICATE KEY UPDATE 
a = VALUE(a), # 若记录存在则使用新值覆盖旧值
b = GREATEST(VALUE(b), b), # 若记录存在则保留新旧记录中的较大值
d = d + 1; # 若记录存在则d字段值加一
# 若记录存在c字段保留原值

2.3 UPDATE JOIN

UPDATE T1, T2,
[INNER JOIN | LEFT JOIN] T1 ON T1.C1 = T2. C1
SET T1.C2 = T2.C2, 
    T2.C3 = expr
WHERE condition

3. 几个注意事项

3.1 SELECT

select 字段时遗漏逗号

SELECT a b FROM xxx
# 由于sql中as可以省略, 所以上述查询等同于
SELECT a AS b FROM xxx
# 所以不小心遗漏逗号会导致丢失b列数据
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值