0 added
0 removed
Original
2026-01-01
Modified
2026-02-26
1
<p>Ранее в курсе мы уже научились работать с запросами, в которых данные фильтруются по диапазону значений. Например, мы умеем фильтровать записи по диапазону дат создания пользователя:</p>
1
<p>Ранее в курсе мы уже научились работать с запросами, в которых данные фильтруются по диапазону значений. Например, мы умеем фильтровать записи по диапазону дат создания пользователя:</p>
2
<p><a>View on DB Fiddle</a></p>
2
<p><a>View on DB Fiddle</a></p>
3
<p>Но есть одна сложность - такое условие неудобно читать и писать. Нам приходится дважды указывать одно и то же имя поля, поэтому есть вероятность допустить опечатку или ошибиться в операторах "больше" и "меньше". Для этой задачи можно использовать более удобный оператор - BETWEEN. В этом уроке мы изучим, как он работает.</p>
3
<p>Но есть одна сложность - такое условие неудобно читать и писать. Нам приходится дважды указывать одно и то же имя поля, поэтому есть вероятность допустить опечатку или ошибиться в операторах "больше" и "меньше". Для этой задачи можно использовать более удобный оператор - BETWEEN. В этом уроке мы изучим, как он работает.</p>
4
<h2>Как фильтровать данные по диапазону</h2>
4
<h2>Как фильтровать данные по диапазону</h2>
5
<p>По сути, оператор BETWEEN - это сокращенная версия двух условий, соединенных через AND. Напишем запрос, который выбирает пользователей с датой рождения от 1 января до 1 февраля 2022 года:</p>
5
<p>По сути, оператор BETWEEN - это сокращенная версия двух условий, соединенных через AND. Напишем запрос, который выбирает пользователей с датой рождения от 1 января до 1 февраля 2022 года:</p>
6
<p><a>View on DB Fiddle</a></p>
6
<p><a>View on DB Fiddle</a></p>
7
<p>Теперь запишем диапазон дат через BETWEEN:</p>
7
<p>Теперь запишем диапазон дат через BETWEEN:</p>
8
<p><a>View on DB Fiddle</a></p>
8
<p><a>View on DB Fiddle</a></p>
9
<p>Во втором запросе мы использовали BETWEEN. Обратите внимание, чем отличаются два этих запроса:</p>
9
<p>Во втором запросе мы использовали BETWEEN. Обратите внимание, чем отличаются два этих запроса:</p>
10
<ul><li>В первом запросе крайние значения не входят в диапазон</li>
10
<ul><li>В первом запросе крайние значения не входят в диапазон</li>
11
</ul><ul><li>Во втором запросе - входят</li>
11
</ul><ul><li>Во втором запросе - входят</li>
12
</ul><p>Другими словами, эти два запроса не равнозначны. В первый диапазон не попадут пользователи с датой рождения 2022-01-01 или 2022-02-01.</p>
12
</ul><p>Другими словами, эти два запроса не равнозначны. В первый диапазон не попадут пользователи с датой рождения 2022-01-01 или 2022-02-01.</p>
13
<p>А теперь попробуем написать запрос, равнозначный запросу с BETWEEN. Для этого используем операторы сравнения:</p>
13
<p>А теперь попробуем написать запрос, равнозначный запросу с BETWEEN. Для этого используем операторы сравнения:</p>
14
<ul><li>>= вместо ></li>
14
<ul><li>>= вместо ></li>
15
<li><= вместо <</li>
15
<li><= вместо <</li>
16
</ul><p><a>View on DB Fiddle</a></p>
16
</ul><p><a>View on DB Fiddle</a></p>
17
<p>Такой запрос будет полностью равнозначен запросу с BETWEEN.</p>
17
<p>Такой запрос будет полностью равнозначен запросу с BETWEEN.</p>
18
<p>Представим, что нам нужно выбрать все записи, которые НЕ попадают в диапазон. Тогда мы добавляем оператор NOT:</p>
18
<p>Представим, что нам нужно выбрать все записи, которые НЕ попадают в диапазон. Тогда мы добавляем оператор NOT:</p>
19
<p><a>View on DB Fiddle</a></p>
19
<p><a>View on DB Fiddle</a></p>
20
<p>Такой запрос выведет всех пользователей, чьи даты рождения попадают в заданный диапазон - строго меньше 1 января или строго больше 1 февраля 2022 года.</p>
20
<p>Такой запрос выведет всех пользователей, чьи даты рождения попадают в заданный диапазон - строго меньше 1 января или строго больше 1 февраля 2022 года.</p>
21
<p>Обычно оператор BETWEEN используют для дат, но его можно применять и с числами:</p>
21
<p>Обычно оператор BETWEEN используют для дат, но его можно применять и с числами:</p>
22
<p><a>View on DB Fiddle</a></p>
22
<p><a>View on DB Fiddle</a></p>
23
<h2>Выводы</h2>
23
<h2>Выводы</h2>
24
<p>В этом уроке мы изучили оператор BETWEEN, который позволяет отфильтровать данные по диапазону. Это намного удобнее, чем использовать два условия "больше или равно" и "меньше или равно", это улучшает читаемость и понимание запроса. Нужно помнить, что BETWEEN включает в условие крайние значения из указанного диапазона.</p>
24
<p>В этом уроке мы изучили оператор BETWEEN, который позволяет отфильтровать данные по диапазону. Это намного удобнее, чем использовать два условия "больше или равно" и "меньше или равно", это улучшает читаемость и понимание запроса. Нужно помнить, что BETWEEN включает в условие крайние значения из указанного диапазона.</p>