Статьи / MySQL


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 вместо = ANY
SELECT * FROM `user` WHERE `id` IN (SELECT `user_id` FROM `comment`);


Или заменив ANY на SOME
SELECT * FROM `user` WHERE `id` = SOME (SELECT `user_id` FROM `comment`);


В данном случае запросы отрабатывают с одинаковой скоростью и выдают одинаковый результат.