MySQL (case when then else end)和常用函数用法
case when then else end 相当于Java的if-else if-else,可以用来在select语句中将要显示的内容替换成另一个内容
更多用法:https://www.cnblogs.com/aipan/p/7770611.html
用法1:
case
字段名
when
条件
then
显示为什么
else
条件
end
例子1:
select (case sex when '1' then '男' else '女' end) as sex from student
用法2:
case
when 条件 then 显示为什么
else 条件
end
例子2:
select (case when sex='1' then '男' else '女' end) as sex from student
IFNULL()函数
IFNULL(字段名,将要转换成什么)
select
if(score,0)
from
result
in 和not in
in、not in运算符,表示包含的集合,一般用于子查询的
#只需要年龄为18,20,21的同学的成绩
select stu.id, stuName, score, age from student as stu, result as r where stu.id=r.stuId age in(18,20,21)
#不显示年龄为18岁的学生 select id, name from student where id NOT IN(select id from age=18)
将date日期类型转换成varchar类型(DATE_FORMAT(字段名,格式))
SELECT DATE_FORMAT(DATE,'%Y-%m-%d') AS Date FROM test
将varchar类型转换成date类型(STR_TO_DATE(字段名,格式))
SELECT STR_TO_DATE(DATE,"%Y%m%d") AS DATE FROM test
varchar和date相互转换的格式参数
| 格式 | 描述 |
|---|---|
| %a | 缩写星期名 |
| %b | 缩写月名 |
| %c | 月,数值 |
| %D | 带有英文前缀的月中的天 |
| %d | 月的天,数值(00-31) |
| %e | 月的天,数值(0-31) |
| %f | 微秒 |
| %H | 小时 (00-23) |
| %h | 小时 (01-12) |
| %I | 小时 (01-12) |
| %i | 分钟,数值(00-59) |
| %j | 年的天 (001-366) |
| %k | 小时 (0-23) |
| %l | 小时 (1-12) |
| %M | 月名 |
| %m | 月,数值(00-12) |
| %p | AM 或 PM |
| %r | 时间,12-小时(hh:mm:ss AM 或 PM) |
| %S | 秒(00-59) |
| %s | 秒(00-59) |
| %T | 时间, 24-小时 (hh:mm:ss) |
| %U | 周 (00-53) 星期日是一周的第一天 |
| %u | 周 (00-53) 星期一是一周的第一天 |
| %V | 周 (01-53) 星期日是一周的第一天,与 %X 使用 |
| %v | 周 (01-53) 星期一是一周的第一天,与 %x 使用 |
| %W | 星期名 |
| %w | 周的天 (0=星期日, 6=星期六) |
| %X | 年,其中的星期日是周的第一天,4 位,与 %V 使用 |
| %x | 年,其中的星期一是周的第一天,4 位,与 %v 使用 |
| %Y | 年,4 位 |
| %y | 年,2 位 |
将查询结果复制到一张新表(create table)或者插入到已创建的新表(insert into)中
#复制到新表中 CREATE TABLE new_table SELECT id, name FROM test #复制到已创建的新表中 INSERT INTO b_table(id,name) SELECT id, name FROM c_table

浙公网安备 33010602011771号