MySQL 选择 IN 范围?

mysqlmysqli database

您无法选择 IN 范围。要获得相同的结果,请使用 BETWEEN。让我们看一个例子 −

IN(start,end):这意味着不会显示 start 和 end 之间的中间值。对于上述逻辑,您可以使用 BETWEEN。

BETWEEN 子句是包含性的,例如,假设有 1、2、3、4、5、6 个数字。如果您想显示从 2 到 6 的数字(包括 2),那么使用 BETWEEN,数字 2 和 6 也会显示出来。

让我们创建一个表 −

mysql> create table SelectInWithBetweenDemo
   -> (
   -> PortalId int
   -> );
Query OK, 0 rows affected (0.77 sec)

使用批量插入的方式插入一些记录,查询如下 −

mysql> insert into SelectInWithBetweenDemo values(1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(11),(12),(13),(14),(15);
Query OK, 15 rows affected (0.19 sec)
Records: 15 Duplicates: 0 Warnings: 0

使用 select 语句显示所有记录,查询如下 −

mysql> select *from SelectInWithBetweenDemo;

这是输出 −

+----------+
| PortalId |
+----------+
|        1 |
|        2 |
|        3 |
|        4 |
|        5 |
|        6 |
|        7 |
|        8 |
|        9 |
|       10 |
|       11 |
|       12 |
|       13 |
|       14 |
|       15 |
+----------+
15 rows in set (0.00 sec)

现在让我们检查选择 IN 范围。查询如下 −

mysql> select PortalId from SelectInWithBetweenDemo where PortalId IN(4,10);

以下是输出 −

+----------+
| PortalId |
+----------+
|        4 |
|       10 |
+----------+
2 rows in set (0.00 sec)

查看上面的输出,我们只得到了 4 和 10,而我们想要的是 4,5,6,7,8,9,10。

现在我们将使用 BETWEEN 子句。它将给出我们想要的结果,并包含结果。

查询如下 −

mysql> select PortalId from SelectInWithBetweenDemo where PortalId Between 4 and 10;

以下是输出 −

+----------+
| PortalId |
+----------+
|        4 |
|        5 |
|        6 |
|        7 |
|        8 |
|        9 |
|       10 |
+----------+
7 rows in set (0.09 sec)

假设您想要独占属性,那么您可以使用 > 和 <。查询如下 −

mysql> select PortalId from SelectInWithBetweenDemo where PortalId > 4 and PortalId < 10;

这是输出 −

+----------+
| PortalId |
+----------+
|        5 |
|        6 |
|        7 |
|        8 |
|        9 |
+----------+
5 rows in set (0.00 sec)

相关文章