MySQL 中的 Select IN 有效吗?
您无法执行 select IN 范围。要获得相同结果,请使用 BETWEEN。我们看一个示例 −
IN(start,end):指 start 和 end 之间的中间值不会显示。对于上述逻辑,您可以使用 BETWEEN。
BETWEEN 子句是包含性的,例如,假设有 1、2、3、4、5、6 个数。如果想要包含性地显示 2 到 6 之间的所有数,那么使用 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)
现在让我们检查 select 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)
广告