0

我想知道,当我们使用“介于”时,SQL 标准或 MySQL 是否存在差异。更准确地说,如果我这样做,在 SQL 标准中:

A between 1 and 10 

是否等于:

1 <= A and A <= 10
-- or
1 < A ans 1 < 10

MySQL中的结果是否相同。

4

2 回答 2

3

来自mysql 开发文档

expr 介于最小值和最大值之间

如果 expr 大于或等于 min 并且 expr 小于或等于 max,则 BETWEEN 返回 1,否则返回 0。这相当于表达式 (min <= expr AND expr <= max) 如果所有参数都是同类型。否则,类型转换将根据第 12.2 节“表达式求值中的类型转换”中描述的规则进行,但适用于所有三个参数。

它清楚地指出1 到 10 之间的 A将等于1 <= A 和 A <= 10

于 2015-12-12T16:37:24.250 回答
0

在 MySQL 中

让“employee_tbl”表包含员工姓名、daily_typing_pages 列。

+------+------+------------+--------------------+
| id   | name | work_date  | daily_typing_pages |
+------+------+------------+--------------------+
|    1 | John | 2007-01-24 |                250 |
|    2 | Ram  | 2007-05-27 |                220 |
|    3 | Jack | 2007-05-06 |                170 |
|    3 | Jack | 2007-04-06 |                100 |
|    4 | Jill | 2007-04-06 |                220 |
|    5 | Zara | 2007-06-06 |                300 |
|    5 | Zara | 2007-02-06 |                350 |
+------+------+------------+--------------------+

如果我们在这个表上运行以下查询:

SELECT * FROM employee_tbl 
WHERE daily_typing_pages BETWEEN 170 AND 300;

查询产生以下输出:

+------+------+------------+--------------------+
| id   | name | work_date  | daily_typing_pages |
+------+------+------------+--------------------+
|    1 | John | 2007-01-24 |                250 |
|    2 | Ram  | 2007-05-27 |                220 |
|    3 | Jack | 2007-05-06 |                170 |
|    4 | Jill | 2007-04-06 |                220 |
|    5 | Zara | 2007-06-06 |                300 |
+------+------+------------+--------------------+

这意味着作品之间具有包容性。结果包括170和300的数据。

在 MSSQL 中

让“产品”表包含产品数据,包括产品名称、价格等。

ProductID	ProductName	                        Price
1	        Chais		                        18
2	        Chang		                        19
3	        Aniseed Syrup		                10
5	        Chef Anton's Gumbo Mix		        21.35
4	        Chef Anton's Cajun Seasoning            22

如果我们在这个表上运行以下查询:

SELECT * FROM Products
WHERE Price BETWEEN 10 AND 20;

查询产生以下数据,包括 between 子句中给出的价格。

ProductID	ProductName	         Price
1	        Chais		         18
2	        Chang		         19
3	        Aniseed Syrup		 10

所以在 MSSQL 之间就像 MySQL 一样具有包容性。

你可以看看这个:http ://www.tutorialspoint.com/mysql/mysql-between-clause.htm

还有这个

http://www.w3schools.com/sql/sql_between.asp

于 2015-12-12T16:39:56.337 回答