如果没有指定排序,顺序按照添加顺序显示
# 不指定升序降序, 默认升序 # 升序ASC, 降序DESC # 排序 # 按照员工工资升序排列 SELECT employee_id,salary FROM employees ORDER BY salary ASC;
使用列名的别名进行排序
# 按照员工年工资排序 SELECT employee_id,salary * 12 annual_sal FROM employees ORDER BY annual_sal ASC; # 列名的别名不能在where中使用 # 错误例子 SELECT employee_id,salary * 12 annual_sal FROM employees WHERE annual_sal>50000; > 1054 - Unknown column 'annual_sal' in 'where clause' > 时间: 0.001s
如果我们要通过几个参数来进行排序就需要进行多级排序
# 基本语句 # 按照列名1的升序、列名2的降序排列 # 这里的排序优先级是先按照列名1排序,只有列名1相同才回进行列名2的排序 order by 列名1 ASC, 列名2 DESC; # 按照员工工资和id排序 SELECT employee_id,salary * 12 annual_sal FROM employees ORDER BY annual_sal ASC, employee_id DESC;
通过LIMIT显示指定位置的内容来实现分页
# LIMIT 起始位置,显示个数; # 这里的起始位置是从0开始的,相当于数组的0位置,所以要显示1-20,起始位置就是0 # 显示1-20 SELECT employee_id,first_name FROM employees LIMIT 0,20; # 显示20-40 SELECT employee_id,first_name FROM employees LIMIT 20,20; # 分页计算 # 已知当前页数与显示个数 LIMIT (当前页数 - 1) * 显示个数,显示个数; # 8.0 新特性 LIMIT 显示个数 offset 起始位置; # 显示1-20 SELECT employee_id,first_name FROM employees LIMIT 20 offset 0; # 显示20-40 SELECT employee_id,first_name FROM employees LIMIT 20 offset 20;
注:**顺序 from ..... where ..... order by .... ASC/DESC LIMIT **