新闻资讯
MySQL学习,mysql常⽤函数汇总
ifnull:判断是否为空
IFNULL(v1,v2):v1为空返回v2,否则返回v1。
mysql> select ifnull(null,'路⼈甲Java'),ifnull('⾮空','为空');
+------------------------------+---------------------------+
| ifnull(null,'路⼈甲Java') | ifnull('⾮空','为空') |
+------------------------------+---------------------------+
| 路⼈甲Java | ⾮空 |
+------------------------------+---------------------------+
1 row in set (0.00 sec)
case:搜索语句,类似于java中的if..else if..else
类似于java中的if..else if..else
有2种写法
⽅式1:
CASE <表达式>
WHEN <值1> THEN <操作>
WHEN <值2> THEN <操作>
...
ELSE <操作>
END CASE;
⽅式2:
CASE
WHEN <条件1> THEN <命令>
WHEN <条件2> THEN <命令>
...
ELSE commands
END CASE;
⽰例:
准备数据:CREATE TABLE t_stu (
id INT AUTO_INCREMENT COMMENT '编号',
name VARCHAR(10) COMMENT '姓名',
sex TINYINT COMMENT '性别,0:未知,1:男,2:⼥',
PRIMARY KEY (id)
) COMMENT '学⽣表';
insert into t_stu (name,sex) VALUES
('张学友',1),
('刘德华',1),
('郭富城',1),
('蔡依林',2),
('xxx',0);
mysql> select * from t_stu;
+----+-----------+------+
| id | name | sex |
+----+-----------+------+
| 1 | 张学友 | 1 |
| 2 | 刘德华 | 1 |
| 3 | 郭富城 | 1 |
| 4 | 蔡依林 | 2 |
| 5 | xxx | 0 |
+----+-----------+------+
5 rows in set (0.00 sec)
需求:查询所有学⽣信息,输出:姓名,性别(男、⼥、未知),如下:
mysql> SELECT
t.name 姓名,
(CASE t.sex
WHEN 1
THEN '男'
WHEN 2
THEN '⼥'
ELSE '未知' END) 性别
FROM t_stu t;
+-----------+--------+| 姓名 | 性别 |
+-----------+--------+
| 张学友 | 男 |
| 刘德华 | 男 |
| 郭富城 | 男 |
| 蔡依林 | ⼥ |
| xxx | 未知 |
+-----------+--------+
5 rows in set (0.00 sec)
mysql> SELECT
t.name 姓名,
(CASE
WHEN t.sex = 1
THEN '男'
WHEN t.sex = 2
THEN '⼥'
ELSE '未知' END) 性别
FROM t_stu t;
+-----------+--------+
| 姓名 | 性别 |
+-----------+--------+
| 张学友 | 男 |
| 刘德华 | 男 |
| 郭富城 | 男 |
| 蔡依林 | ⼥ |
| xxx | 未知 |
+-----------+--------+
5 rows in set (0.00 sec)mysql> SELECT user();
+----------------+
| user() |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.00 sec)
mysql> SELECT password('123456');
+-------------------------------------------+
| password('123456') |
+-------------------------------------------+
| *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
+-------------------------------------------+
1 row in set, 1 warning (0.00 sec)
mysql> SELECT md5('123456');
+----------------------------------+
| md5('123456') |
+----------------------------------+
| e10adc3949ba59abbe56e057f20f883e |
+-------------------------
回复列表