MySQL數據庫學習筆記(6)- DQL之IN、LIKE、查詢結果排序與分頁


1. IN

運算符 IN 允許我們在 WHERE 子句中過濾某個字段的多個值。

它的基本形式如下:

SELECT [列名1, 列名2, ...] FROM 表名 WHERE 字段名 IN(1,2, ...)

下面是一個簡單的示例,找到ID爲2,3,4,9的記錄

SELECT * FROM employee WHERE id IN (2, 3, 4, 9);

結果如下:
MySQL_IN

2. LIKE

當我們需要查詢 包含 xxxx 的所有記錄時,就需要使用 LIKE 子句。

說明:

  • LIKE 子句中的 % 類似於正則表達式中的 * ,匹配 0個或多個字符
  • LIKE 子句中的 _ 匹配任意單個字符。
  • LIKE 子句中如果沒有 %_ ,相當於運算符 = 的效果。

下面是簡單的示例:

SELECT * FROM employee WHERE name LIKE '%小%';  # 匹配名字中帶小的記錄
SELECT * FROM employee WHERE name LIKE '張_';   # 匹配姓張且名字爲兩個字的記錄

3. 排序

使用關鍵字 ORDER BY 可以對查詢結果按照一個或者多個字段進行排序。
ASC (正序), DESC (倒序) 默認爲 ASC

對於表 employee 按照工資排序, 可以使用如下sql語句:

SELECT * FROM employee ORDER BY salary;

結果如下:
MySQL_ORDER

注意: 如果指定多列作爲排序的條件,則表示如果第一個列的值相同,則按照後面的列的順序進行排序。

默認爲正序(從小到大)的順序排序,想要實現倒序的效果,可以使用關鍵字 DESC

SELECT * FROM employee ORDER BY salary DESC;

4. 分頁

如果數據比較多,想分爲多頁的方式顯示數據,則可以使用 LIMIT 關鍵字。它的基本形式如下:

SELECT [1,2, ...] FROM 表名 LIMIT offset, row_count
  • offset : 表示偏移的位置
  • row_count :表示最多顯示的行數

如果顯示第N頁的內容,每頁顯示M條記錄,則可以使用公式
offset = (N - 1) * M

這裏值得注意的是,如果想要從第一個數據開始,需要指定的索引(offset) 爲0。
下面簡單的示例:

SELECT * FROM employee ORDER BY salary DESC LIMIT 0, 4; # 獲取第1頁的數據
SELECT * FROM employee ORDER BY salary DESC LIMIT 4, 4; # 獲取第2頁的數據
SELECT * FROM employee ORDER BY salary DESC LIMIT 8, 4; # 獲取第3頁的數據

示例中,從表employee中按照的工資(salary)的高低(由高到低)顯示前3頁的數據,每頁4條記錄。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章