Задать вопрос
Demigodd
@Demigodd

Как вместе проверять 2 условия в WHERE?

SELECT *
FROM User
WHERE User.id IS NULL AND User.name = 'google'


То есть тут запрос возвращает всех User`ов у кого name = 'google'.

А мне нужно проверять если id равно NULL и после этого проверять name равно ли 'google'.
  • Вопрос задан
  • 101 просмотр
Подписаться 1 Простой 1 комментарий
Решения вопроса 4
@res2001
Developer, ex-admin
Добавьте через and дополнительное условие.
Почитайте что-нибудь про логические выражения.
Ответ написан
Комментировать
samodum
@samodum
Какой вопрос - такой и ответ
SELECT * FROM (
SELECT * FROM User
WHERE id IS NULL) t2
WHERE t2.name = 'google'
Ответ написан
Комментировать
tsklab
@tsklab
Здесь отвечаю на вопросы.
SELECT *
FROM User
WHERE (User.id IS NULL) AND (User.name = 'google')
Ответ написан
Комментировать
@ponaehal
Ну вы даете... Это все одно и тоже.

Даже вот это
SELECT * FROM (
SELECT * FROM User
WHERE id IS NULL) t2
WHERE t2.name = 'google'

оптимизатор почти любой реляционной БД превратит вот в это:
SELECT *
FROM User
WHERE User.id IS NULL AND User.name = 'google'


И вообще сам вопрос содержит абсолютно верный ответ. Решать вопрос пследовательности фильтрации предоставьте оптимизатору.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы