共計(jì) 2448 個(gè)字符,預(yù)計(jì)需要花費(fèi) 7 分鐘才能閱讀完成。
今天丸趣 TV 小編給大家分享一下 mysql 排序與分頁的方法是什么的相關(guān)知識(shí)點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識(shí),所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
排序規(guī)則
ASC(ascend): 升序
DESC(descend): 降序
ORDER BY 子句在 SELECT 語句的結(jié)尾
代碼案例
# 按照 salary 從高到低的順序顯示員工信息
SELECT employee_id, last_name, salary
FROM employees
ORDER BY salary DESC;
# 按照 salary 從低到高的順序顯示員工信息
SELECT employee_id, last_name, salary
FROM employees
ORDER BY salary ASC;
# 如果在 ORDER BY 后沒有顯式指名排序的方式的話,則默認(rèn)按照升序排列
SELECT employee_id, last_name, salary
FROM employees
ORDER BY salary;
# 使用列的別名,進(jìn)行排序
SELECT employee_id, salary, salary * 12 annual_sal
FROM employees
ORDER BY annual_sal;
# 錯(cuò)誤案例:# 列的別名只能在 ORDER BY 中使用,不能在 WHERE 中使用。如下方式會(huì)報(bào)錯(cuò)
SELECT employee_id, salary, salary * 12 annual_sal
FROM employees
WHERE annual_sal 81600;
# WHERE 需要聲明在 FROM 后,ORDER BY 之前
SELECT employee_id, salary
FROM employees
WHERE department_id IN (50,60,70)
ORDER BY department_id DESC;
# 二級(jí)排序:顯示員工信息,按照 department_id 的降序排列,salary 的升序排列
SELECT employee_id, salary, department_id
FROM employees
ORDER BY department_id DESC, salary ASC;
分頁規(guī)則
# 顯示第幾條到第幾條
LIMIT [位置偏移量,] 行數(shù)
# 顯示第幾頁的所有
分頁顯式公式:(當(dāng)前頁數(shù) -1)* 每頁條數(shù),每頁條數(shù)
代碼案例
# 每頁顯示 20 條記錄,此時(shí)顯示第 1 頁
SELECT employee_id, last_name
FROM employees
LIMIT 0, 20;
# 每頁顯示 20 條記錄,此時(shí)顯示第 2 頁
SELECT employee_id, last_name
FROM employees
LIMIT 20, 20;
# 每頁顯示 20 條記錄,此時(shí)顯示第 3 頁
SELECT employee_id, last_name
FROM employees
LIMIT 40, 20;
# 每頁顯示 pageSize 條記錄,此時(shí)顯示第 pageNo 頁:# 公式:LIMIT (pageNo-1) * pageSize,pageSize;
# LIMIT 的格式: 嚴(yán)格來說:LIMIT 位置偏移量, 條目數(shù)
# 結(jié)構(gòu) LIMIT 0, 條目數(shù) 等價(jià)于 LIMIT 條目數(shù)
SELECT employee_id, last_name, salary
FROM employees
WHERE salary 6000
ORDER BY salary DESC
#limit 0, 10; # 寫法 1
LIMIT 10;
# 表里有 107 條數(shù)據(jù),我們只想要顯示第 32、33 條數(shù)據(jù)
SELECT employee_id, last_name
FROM employees
LIMIT 31, 2;
# MySQL8.0 新特性:LIMIT ... OFFSET ...
# 表里有 107 條數(shù)據(jù),我們只想要顯示第 32、33 條數(shù)據(jù)
SELECT employee_id, last_name
FROM employees
LIMIT 2 OFFSET 31;
# 查詢員工表中工資最高的員工信息
SELECT employee_id, last_name, salary
FROM employees
ORDER BY salary DESC
#limit 0, 1
LIMIT 1;
課后練習(xí)
# 查詢員工的姓名和部門號(hào)和年薪,按年薪降序, 按姓名升序顯示
SELECT last_name, department_id, salary * 12 annual_salary
FROM employees
ORDER BY annual_salary DESC, last_name ASC;
# 選擇工資不在 8000 到 17000 的員工的姓名和工資,按工資降序,顯示第 21 到 40 位置的數(shù)據(jù)
SELECT last_name, salary
FROM employees
WHERE salary NOT BETWEEN 8000 AND 17000
ORDER BY salary DESC
LIMIT 20, 20;
# 查詢郵箱中包含 e 的員工信息,并先按郵箱的字節(jié)數(shù)降序,再按部門號(hào)升序
SELECT employee_id, last_name, email, department_id
FROM employees
#where email like %e% # 寫法 1
WHERE email REGEXP [e]
ORDER BY LENGTH(email) DESC,department_id;
以上就是“mysql 排序與分頁的方法是什么”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,丸趣 TV 小編每天都會(huì)為大家更新不同的知識(shí),如果還想學(xué)習(xí)更多的知識(shí),請(qǐng)關(guān)注丸趣 TV 行業(yè)資訊頻道。
正文完