新闻资讯

新闻资讯 媒体报道

MySQL学习,mysql常⽤函数汇总

编辑:013     时间:2021-10-16

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 |

+-------------------------

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

回复列表

相关推荐