CASE expression WHEN condition1 THEN result1 WHEN condition2 THEN result2 .. WHEN conditionN THEN resultN ELSE result END #CASE 表示函数开始 #END 表示函数结束 #如果 condition1 成立 #则返回 result1 #如果 condition2 成立 #则返回 result2 #当全部不成立则返回 result #而当有一个成立之后,后面的就不执行了
IF
1
IF(expr,v1,v2)#如果表达式 expr 成立,返回结果 v1;否则,返回结果 v2。
IFNULL
1
IFNULL(v1,v2)#如果 v1 的值不为 NULL,则返回 v1,否则返回 v2
去除结果集中的重复元素
1
selectdistinct(title) from book;
模糊查询
1 2 3
select * from book where title="Java%";#查询以Java开头的数据,只有这样使用索引以下两种不使用索引 select * from book where title="%Java";#查询以Java结尾的数据 select * from book where title="%Java%";#查询包含Java的数据
合并结果集
1
select title from book1 unionselecttitlefrombook2
连接(left jion/right jion/jion/逗号)
1 2 3 4
select * from book1 left jion book2 where xx=yy #获取左表所有记录,即使右表没有对应匹配的记录 select * from book1 right jion book2 where xx=yy #获取右表所有记录,即使左表没有对应匹配的记录 select * from book1 jion book2 where xx=yy #获取两个表中字段匹配关系的记录 select * from book1 , book2 where xx=yy#同jion
分组
1
selectcount(*) from book groupby author ='Java学习录'#查询公众号Java学习录一共写了多少篇文章
排序
1 2
select * from book orderbydateASC#默认就是ASC 可省略,按date升序排列 select * from book orderbydateDESC#按date降序排列
分页
1 2 3
select * from table limit5; #返回前5行 select * from table limit0,5; #同上,返回前5行 select * from table limit5,10; #返回6-15行