MySQL - Between 操作符:初学者指南

你好,有抱负的数据库爱好者们!今天,我们将踏上一段激动人心的旅程,探索 MySQL 的世界,特别是关注 BETWEEN 操作符。如果你是编程新手,不用担心;我会成为你的友好向导,一步一步地解释所有内容。那么,让我们开始吧!

MySQL - Between Operator

BETWEEN 操作符是什么?

想象你在整理书架。你想找到所有在 2010 年到 2020 年之间出版的书。这正是 MySQL 中的 BETWEEN 操作符帮助我们的地方——它允许我们选择给定范围内的值。

基本语法

SELECT 列名(s)
FROM 表名
WHERE 列名 BETWEEN 值1 AND 值2;

让我们分解一下:

  • SELECT:就像说“我想看到...”
  • 列名(s):你想要看到的具体信息
  • FROM 表名:信息存储的地方
  • WHERE:我们设置条件的方式
  • BETWEEN 值1 AND 值2:我们的范围

MySQL BETWEEN 操作符实战

假设我们有一个名为 books 的表,包含列 idtitleauthorpublication_year。以下是如何使用 BETWEEN 的示例:

SELECT title, author, publication_year
FROM books
WHERE publication_year BETWEEN 2010 AND 2020;

这个查询将向我们展示所有在 2010 年到 2020 年之间(包括)出版的书。就像问,“展示我从 2010 年到 2020 年(包括)的所有书。”

BETWEEN 与日期

BETWEEN 也非常适合与日期一起使用!假设我们有一个 orders 表:

SELECT order_id, customer_name, order_date
FROM orders
WHERE order_date BETWEEN '2023-01-01' AND '2023-12-31';

这将展示所有在 2023 年下的订单。很酷,对吧?

MySQL BETWEEN 与 IN 操作符

现在,让我们来点刺激的。如果我们只想找到在 2010 年到 2020 年之间出版,但仅限于某些作者的书呢?这时我们可以将 BETWEEN 与 IN 结合使用:

SELECT title, author, publication_year
FROM books
WHERE publication_year BETWEEN 2010 AND 2020
AND author IN ('J.K. Rowling', 'George R.R. Martin', 'Stephen King');

这个查询就像说,“展示我从 2010 年到 2020 年(包括)的书,但只有这些特定作者写的。”

MySQL BETWEEN 与 UPDATE 语句

有时,我们不仅仅是想查看数据——我们想更改它。假设我们想给所有价格在 $50 到 $100 之间的产品打 10% 的折扣:

UPDATE products
SET price = price * 0.9
WHERE price BETWEEN 50 AND 100;

这个查询更新价格,对指定范围内的产品应用 10% 的折扣。

BETWEEN 操作符与 DELETE 语句

BETWEEN 操作符也可以在我们要删除数据时使用。想象我们要删除 2023 年第一季度的所有订单:

DELETE FROM orders
WHERE order_date BETWEEN '2023-01-01' AND '2023-03-31';

这将删除所有在 2023 年前三个月下的订单。使用 DELETE 语句时要小心——运行之前一定要双倍检查!

MySQL NOT BETWEEN 操作符

有时,我们想要特定范围之外的所有内容。这时 NOT BETWEEN 就派上用场了:

SELECT title, author, publication_year
FROM books
WHERE publication_year NOT BETWEEN 2010 AND 2020;

这个查询展示所有在 2010 年之前或 2020 年之后出版的书。

NOT BETWEEN 操作符与 IN 操作符

我们可以将 NOT BETWEEN 与 IN 结合起来进行更具体的查询:

SELECT product_name, price
FROM products
WHERE price NOT BETWEEN 50 AND 100
AND category IN ('Electronics', 'Appliances');

这个查询找到在 Electronics 或 Appliances 类别中,价格低于 $50 或高于 $100 的产品。

在客户端程序中使用 BETWEEN 操作符

当在客户端程序(如 PHP 脚本)中使用 BETWEEN 时,你可能会这样做:

<?php
$min_price = 50;
$max_price = 100;

$query = "SELECT product_name, price FROM products WHERE price BETWEEN ? AND ?";
$stmt = $conn->prepare($query);
$stmt->bind_param("dd", $min_price, $max_price);
$stmt->execute();
$result = $stmt->get_result();

while ($row = $result->fetch_assoc()) {
echo $row['product_name'] . ": $" . $row['price'] . "<br>";
}
?>

这个 PHP 脚本准备了一个带有占位符的查询,绑定值,执行查询,然后显示结果。

结论

好了,各位!我们已经穿越了 MySQL 中 BETWEEN 操作符的世界。从基本的选取到更新和删除,我们已经看到了这个小巧的操作符有多么多功能。记住,熟能生巧,所以不要害怕用你自己的查询来实验。

以下是我们涵盖的方法的快速参考表:

方法 描述
BETWEEN 选择给定范围内的值
BETWEEN 与 IN 结合范围和特定值选择
BETWEEN 与 UPDATE 更新特定范围内的记录
BETWEEN 与 DELETE 删除特定范围内的记录
NOT BETWEEN 选择给定范围之外的值
NOT BETWEEN 与 IN 结合排除范围与特定值选择

快乐查询,愿你的数据库永远井井有条且高效!

Credits: Image by storyset