ANY
Каждое значение слева от ANY сравнивается(OR) со всеми значениями справа(списком или значением). Используется во вложенных запросах. Справа от ANY находится вложенный запрос(подзапрос), а затем его результат в виде списка или значения.
Псевдонимы:
ANY SOME
= ANY IN
!= ANY NOT IN
<> ANY NOT IN
Например следующий запрос выводит имена всех пользователей, которые оставили комментарий:
SELECT * FROM `user` WHERE `id` = ANY (SELECT `user_id` FROM `comment`);
Мы можем получить такой же результат используя
IN вместо
= ANYSELECT * FROM `user` WHERE `id` IN (SELECT `user_id` FROM `comment`);
Или заменив
ANY на
SOMESELECT * FROM `user` WHERE `id` = SOME (SELECT `user_id` FROM `comment`);
В данном случае запросы отрабатывают с одинаковой скоростью и выдают одинаковый результат.