09.09.2024 10:47:00
Последовательность выполнения операций на сервере:
MySQL: FROM => WHERE => GROUP BY => HAVING => SELECT => ORDER BY => LIMIT.
PostgreSQL: FROM => WHERE => GROUP BY => HAVING => SELECT => DISTINCT => ORDER BY => LIMIT.
Операторы ANY и ALL
Оператор ANY возвращает TRUE, если какое-либо из значений подзапроса соответствует условию.
- amount > ANY (10, 12) эквивалентно amount > 10
- amount < ANY (10, 12) эквивалентно amount < 12
- amount = ANY (10, 12) эквивалентно (amount = 10) OR (amount = 12), а также amount IN (10,12)
- amount <> ANY (10, 12) вернет все записи с любым значением amount, включая 10 и 12
Оператор ALL возвращает TRUE, если все значения подзапроса удовлетворяют условию.
- amount > ALL (10, 12) эквивалентно amount > 12
- amount < ALL (10, 12) эквивалентно amount < 10
- amount = ALL (10, 12) не вернет ни одной записи, так как эквивалентно (amount = 10) AND (amount = 12)
- amount <> ALL (10, 12) вернет все записи кроме тех, в которыхamount равно 10 или 12