Рассмотрим эту таблицу с именем 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 МЕЖДУ мин. и макс.
Если выражение больше или равно min, а выражение меньше или равно max, функция BETWEEN возвращает 1, в противном случае возвращается 0. Если выражение больше или равно min, а выражение меньше или равно max, BETWEEN > возвращает 1, иначе возвращает 0.
Почему запрос дает такие результаты?
Я рассмотрел вопросы, объясняющие поведение Timestamp и Date. В чем причина в данном случае?