您好,登錄后才能下訂單哦!
今天小編給大家分享一下mysql排序與分頁的方法是什么的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
排序規則
ASC(ascend): 升序 DESC(descend):降序 ORDER BY 子句在SELECT語句的結尾
代碼案例
# 按照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 后沒有顯式指名排序的方式的話,則默認按照升序排列 SELECT employee_id, last_name, salary FROM employees ORDER BY salary; # 使用列的別名,進行排序 SELECT employee_id, salary, salary * 12 annual_sal FROM employees ORDER BY annual_sal; # 錯誤案例: # 列的別名只能在 ORDER BY 中使用,不能在WHERE中使用。如下方式會報錯 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; # 二級排序:顯示員工信息,按照department_id的降序排列,salary的升序排列 SELECT employee_id, salary, department_id FROM employees ORDER BY department_id DESC, salary ASC;
分頁規則
# 顯示第幾條到第幾條 LIMIT [位置偏移量,] 行數 # 顯示第幾頁的所有 分頁顯式公式:(當前頁數-1)*每頁條數,每頁條數
代碼案例
# 每頁顯示20條記錄,此時顯示第1頁 SELECT employee_id, last_name FROM employees LIMIT 0, 20; # 每頁顯示20條記錄,此時顯示第2頁 SELECT employee_id, last_name FROM employees LIMIT 20, 20; # 每頁顯示20條記錄,此時顯示第3頁 SELECT employee_id, last_name FROM employees LIMIT 40, 20; # 每頁顯示pageSize條記錄,此時顯示第pageNo頁: # 公式:LIMIT (pageNo-1) * pageSize,pageSize; # LIMIT的格式: 嚴格來說:LIMIT 位置偏移量,條目數 # 結構"LIMIT 0,條目數" 等價于 "LIMIT 條目數" SELECT employee_id, last_name, salary FROM employees WHERE salary > 6000 ORDER BY salary DESC #limit 0, 10; # 寫法1 LIMIT 10; # 表里有107條數據,我們只想要顯示第 32、33 條數據 SELECT employee_id, last_name FROM employees LIMIT 31, 2; # MySQL8.0新特性:LIMIT ... OFFSET ... # 表里有107條數據,我們只想要顯示第 32、33 條數據 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;
課后練習
# 查詢員工的姓名和部門號和年薪,按年薪降序,按姓名升序顯示 SELECT last_name, department_id, salary * 12 annual_salary FROM employees ORDER BY annual_salary DESC, last_name ASC; # 選擇工資不在 8000 到 17000 的員工的姓名和工資,按工資降序,顯示第21到40位置的數據 SELECT last_name, salary FROM employees WHERE salary NOT BETWEEN 8000 AND 17000 ORDER BY salary DESC LIMIT 20, 20; # 查詢郵箱中包含 e 的員工信息,并先按郵箱的字節數降序,再按部門號升序 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排序與分頁的方法是什么”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。