考虑这个名为 的表easy_drinks
,
+------------------+
| drink_name |
+------------------+
| Kiss on the Lips |
| Hot Gold |
| Lone Tree |
| Greyhound |
| Indian Summer |
| Bull Frog |
| Soda and It |
| Blackthorn |
| Blue Moon |
| Oh My Gosh |
| Lime Fizz |
+------------------+
这样的查询,
select drink_name from easy_drinks where drink_name BETWEEN 'G' and 'O';
结果是
+------------------+
| drink_name |
+------------------+
| Kiss on the Lips |
| Hot Gold |
| Lone Tree |
| Greyhound |
| Indian Summer |
| Lime Fizz |
+------------------+
以开头的饮料名称O
不包含在结果中。但根据手册页
expr 介于最小值和最大值之间
如果 expr 大于或等于 min 且 expr小于或等于 max,则 BETWEEN 返回 1,否则返回 0。如果 expr 大于或等于 min 且 expr 小于或等于 max ,则 BETWEEN >返回1,否则返回 0。
为什么查询会给出这样的结果?
我已经通过解释时间戳和日期行为的问题。在这种情况下是什么原因?