Navicat 博客

2019 年 5 月 29 日,由 Robert Gravelle 撰写

你必须知道的一些 SELECT 查询 这篇文章讲述了一些最重要的查询以及提供了一些示例。今天我们继续这个主题,示范如何使用 BETWEEN 这个非常重要的运算符。

将值限制为某个范围

筛选查询返回行数的其中一种方法是将一个或多个字段的值限制为一个范围。通常,这可以使用 >= 和 <= 运算符来完成。举例说明,以下的查询返回 2005 年 7 月 5 日至 6 日期间的 Sakila 电影出租信息:

SELECT
        customer_list.`name`,
        rental.rental_date,
        film.title
FROM
        customer_list
        INNER JOIN rental ON customer_list.ID = rental.customer_id
        INNER JOIN film ON rental.inventory_id = film.film_id
WHERE
        rental_date >= '2005-07-05' AND rental_date <= '2005-07-06'

与上述范围相同的更短且更易读的限制方法是使用 BETWEEN 运算符。BETWEEN 运算符用于选择特定范围内的值。定义为 BETWEEN 范围一部分的值是包含的,即范围中提到的起始值和结束值:

WHERE rental_date BETWEEN '2005-07-05' AND '2005-07-06'

在这两种情况,结果都受限于给定的日期范围:

name rental_date title
----------------------------------------------------------------
JAIME NETTLES 2005-07-05 22:49:24 TEQUILA PAST
PAMELA BAKER 2005-07-05 22:56:33 STAR OPERATION
EDUARDO HIATT 2005-07-05 22:59:53 BRIDE INTRIGUE
FERNANDO CHURCHILL 2005-07-05 23:13:51 BLADE POLISH
CARMEN OWENS 2005-07-05 23:25:54 CANDLES GRAPES
JOE GILLILAND 2005-07-05 23:32:49 TOURIST PELICAN
APRIL BURNS 2005-07-05 23:44:37 WIZARD COLDBLOODED
ERICA MATTHEWS 2005-07-05 23:46:19 JACKET FRISCO

虽然 BETWEEN 运算符用于限制日期理想,同样适用于其他数据类型。例如对上述数据进行进一步过滤,将结果限制为租金介于 2.99 和 4.99 之间:

SELECT
        customer_list.`name`,
        rental.rental_date,
        film.title,
        film.rental_rate
FROM
        customer_list
        INNER JOIN rental ON customer_list.ID = rental.customer_id
        INNER JOIN film ON rental.inventory_id = film.film_id
WHERE
        rental.rental_date BETWEEN '2005-07-05' AND '2005-07-06'
        AND film.rental_rate BETWEEN 2.99 AND 4.99

name rental_date title rental_rate
----------------------------------------------------------------------------------
JAIME NETTLES 2005-07-05 22:49:24 TEQUILA PAST 4.99
PAMELA BAKER 2005-07-05 22:56:33 STAR OPERATION 2.99
CARMEN OWENS 2005-07-05 23:25:54 CANDLES GRAPES 4.99
JOE GILLILAND 2005-07-05 23:32:49 TOURIST PELICAN 4.99
APRIL BURNS 2005-07-05 23:44:37 WIZARD COLDBLOODED 4.99
ERICA MATTHEWS 2005-07-05 23:46:19 JACKET FRISCO 2.99

总结

今天的文章介绍了 BETWEEN 这个非常重要的运算符,以及使用 Navicat Premium 作为数据库客户端的一些示例。Navicat 的自动完成代码和自定义的代码段功能透过关键字建议和减少重复输入相同的代码,令编码更加快速。你可以免费试用 14 天进行评估。

Navicat 文章
频道条目
分享
文章归档