我想知道,当我们使用'之间'时,SQL Standard或MySQL中是否存在差异。 更准确地说,如果我这样做:SQL标准:
A between 1 and 10
是否等于:
1 <= A and A <= 10
-- or
1 < A ans 1 < 10
MySQL中的结果是否相同。
答案 0 :(得分:3)
expr BETWEEN min AND max
如果expr大于或等于min且expr小于或等于 到最大值,BETWEEN返回1,否则返回0.这是等效的 如果所有参数都是表达式(min&lt; = expr AND expr&lt; = max) 属于同一类型。否则进行类型转换 第12.2节“表达式中的类型转换”中描述的规则 评价“,但适用于所有三个论点。
它明确指出 A介于1和10之间将等于 1 <= A且A <= 10
答案 1 :(得分: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;
查询产生以下数据,包括在子句中给出的价格。
ProductID ProductName Price
1 Chais 18
2 Chang 19
3 Aniseed Syrup 10
所以在MSSQL之间作为包容就像MySQL一样。
你可以看一下:http://www.tutorialspoint.com/mysql/mysql-between-clause.htm
和这个