MySQL排序
单一字段排序
排序采用order by子句,order by后面跟上排序字段,排序字段可以放多个,多个采用逗号间隔,order by默认采用升序,如果存在where子句那么order by必须放到where语句的后面。
select * from stu order by age;
select * from stu where sex="女" order by age;
按照多个字段排序
select * from stu order by age,id; 先按年龄排序,再按id排序。
手动指定排序顺序
● 手动指定按照薪水由小到大排序 加 asc
select * from stu order by age asc;
● 手动指定按照薪水由大到小排序 加 desc
select * from stu order by age desc;
多个字段排序
select * from stu order by age desc,id desc; 按照年龄和id的倒序排序
使用字段的位置来排序
select * from stu order by 3; 按照年龄排序
不建议使用此种方式,采用数字含义不明确,程序不健壮。
MySQL函数
Lower | 转换小写 |
upper | 转换大写 |
substr | 取子串(substr(被截取的字符串,起始下标,截取的长度)) |
length | 取长度 |
trim | 去空格 |
str_to_date | 将字符串转换成日期 |
date_format | 格式化日期 |
format | 设置千分位 |
round | 四舍五入 |
rand() | 生成随机数 |
Ifnull | 可以将null转换成一个具体值 |
lower
查询并将查询的内容转化成小写
select lower(name) from stu; 查询名字,并将名字转化为小写。
upper
select upper(name) from stu; 查询名字,并将名字转化为大写。
select * from stu where name=upper("A"); 查询名字为a的人的所有信息。
substr
select * from stu where substr(name,2,1)="佳";
length
select length(name) from stu where name="徐佳音";
select name from stu where length(name)=9;
trim
trim会去首尾空格,不会去除中间的空格。
select * from stu where name=trim(" a ");