SQL入門教學手冊login
SQL入門教學手冊
作者:php.cn  更新時間:2022-04-12 14:15:40

之間的 SQL



BETWEEN 運算子用於選取介於兩個值之間的資料範圍內的值。


SQL BETWEEN 運算子

BETWEEN 運算子選取介於兩個值之間的資料範圍內的值。這些值可以是數值、文字或日期。

SQL BETWEEN 語法

SELECT column_name(s)
FROM table_name
WHERE column_name BETWEEN value1 AND value2;


#示範資料庫

在本教學中,我們將使用php樣本資料庫。

下面是選自"Websites" 表的資料:

+----+--------------+--- ------------------------+-------+---------+
| id | name | url                       | alexa | country |
+----+----------+------------------------------------ --------+-------+---------+
| 1  | Google       | https://www.google.cm/    | 1     | USA    | 1     | 
| 2  | 淘寶          | https://www.taobao.com/   | 13    | CN  cn/    | 4689  | CN      |
| 4  | 微博          | http://weibo.com/         | 201   https://www.facebook.com/ | 3     | USA     |
| 7  | stackoverflow | http://stackoverflow.com/ |   0 | IND     |
+----+---------------+----------- ----------------+-------+---------+

BETWEEN 操作符實例

下面的SQL 語句選取alexa 介於1 和20 之間的所有網站:

實例

                SELECT * FROM Websites

WHERE alexa BETWEEN 1 AND 20;

執行輸出結果:

##

NOT BETWEEN 運算元實例

如需顯示未在上面實例範圍內的網站,請使用NOT BETWEEN:

##實例

                SELECT * FROM Websites
WHERE alexa NOT BETWEEN 1 AND 20;
執行輸出結果:



#帶有IN 的BETWEEN 操作符實例

下面的SQL 語句選取alexa介於1 和20 之間但country 不為USA 和IND 的所有網站:

#實例

                SELECT * FROM Websites
WHERE (alexa BETWEEN 1 AND 20)
AND NOT country IN ('USA', 'IND');
執行輸出結果:



有文字值的BETWEEN 運算子實例

下面的SQL 語句選取name 以介於'A' 和'H' 之間字母開始的所有網站:

實例

#                SELECT * FROM Websites
WHERE name BETWEEN 'A' AND 'H';
執行輸出結果:




帶有文字值的NOT BETWEEN 運算元實例

下面的SQL 語句選取name 不介於'A' 和'H' 之間字母開始的所有網站:

實例
                SELECT * FROM Websites###WHERE name NOT BETWEEN 'A' AND 'H';######執行輸出結果:###############

範例表

下面是"access_log" 網站存取記錄表的數據,其中:

  • aid:為自增id。

  • site_id:為對應 websites表的網站 id。

  • count:造訪次數。

  • date:為存取日期。

mysql> SELECT * FROM access_log;
+-----+---------+-------+ ------------+
| aid | site_id | count | date       |
+-----+---------+----- --+------------+
|   1 |       1 |    45 | 2016-05-10   1 |    45 | 2016-05-10   |
   3 |       1 |   230 | 2016-05-14 |
|    |      5 |       5 |   205 | 2016-05-14 |
| 6 |       4 |    13 | 2016-05-15 |
|   7 |       3   7 |      |       5 |   545 | 2016-05-16 |
|   9 | 3 |   201 | 2016-05-17 |
+-----+---------+-------+------------ +
9 rows in set (0.00 sec)


#本教學所使用的access_log 表SQL 檔案:access_log.sql。

    帶有日期值的BETWEEN 運算元實例

    下面的SQL 語句選取date 介於'2016-05-10' 和'2016-05-14'所有之間的存取記錄:

    實例

                        SELECT * FROM access_log

    WHERE date BETWEEN '2016-05-10' AND '2016-05-14';

    執行輸出結果:

    #
    lamp

    請注意,在不同的資料庫中,BETWEEN 運算元會產生不同的結果!
    在某些資料庫中,BETWEEN 選取介於兩個值之間但不包含兩個測試值的欄位。
    在某些資料庫中,BETWEEN 選取介於兩個值之間且包含兩個測試值的欄位。
    在某些資料庫中,BETWEEN 選取介於兩個值之間且包含第一個測試值但不包含最後一個測試值的欄位。

    因此,請檢查您的資料庫是如何處理 BETWEEN 運算子!