Типы
условий
79
| 2 | Susan | Barker | 20020912 |
| 4 | Susan | Hawthorne | 20020424 |
| 8 | Sarah | Parker | 20021202 |
| 9 | Jane | Grossman | 20020503 |
| 10 | Paula | Roberts | 20020727 |
| 14 | Cindy | Mason | 20020809 |
| 16 | Theresa | Markham | 20010315 |
| 17 | Beth | Fowler | 20020629 |
| 18 | Rick | Tulman | 20021212 |
+++++
10 rows in set (0.05 sec)
При работе с оператором
between
необходимо помнить пару правил.
Первой (после ключевого слова
between
) всегда должна задаваться ниж
няя граница диапазона, а потом (после
and
) верхняя граница.
Вот что
происходит, если задать первой верхнюю границу:
mysql> SELECT emp_id, fname, lname, start_date
> FROM employee
> WHERE start_date BETWEEN '20030101' AND '20010101';
Empty set (0.00 sec)
Как видите, не возвращено никаких данных. Это объясняется тем, что
фактически из одного заданного условия сервер генерирует два, ис
пользуя
операторы
<=
и
>=
:
mysql>
SELECT emp_id, fname, lname, start_date
>
FROM employee
>
WHERE start_date >= '20030101'
>
AND start_date <= '20010101';
Empty set (0.00 sec)
Поскольку такая дата – одновременно позднее 1 января 2003 года и
раньше 1 января 2001 года – не существует, по
запросу возвращается
пустой набор. Далее следует отметить второй подводный камень при
использовании оператора
between
: необходимо помнить,
что верхняя
и нижняя границы
включаются
в диапазон. В данном случае я хотел,
чтобы нижней границей была дата
20010101
, а верхней –
20021231
,
а не
20030101
. Даже несмотря на то, что, скорее всего, никто из со
трудников банка не начал работать в первый же день Нового 2003 го
да, лучше задавать именно то, что требуется.
Как и
для дат, можно создавать условия, определяющие диапазон для
чисел. Числовые диапазоны довольно просты для понимания,
как вид
но из следующего примера:
Достарыңызбен бөлісу: