Обновление статуса пользователя, переданного внутри запроса - PullRequest
0 голосов
/ 25 января 2012

У меня есть запрос, который обновляет статус пользователя, переданного внутри него.

update userinfo set status=1 where id in 
(select id from userinfo where name in ('viki','nik','mike'));

Запрос работает нормально.Но проблема в том, что имя nik отсутствует в базе данных.Тогда запрос не будет работать для остальных пользователей, которые идут после 'nik'.Как я могу убедиться, что запрос на обновление выполняется для каждого из них?

Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 25 января 2012

Это будет работать. Запрос:

select id from userinfo where name in ('viki','nik','mike')

вернет идентификаторы для 'viki 'и' mike ', даже если' nik 'там нет.

Как вы думаете, почему это не работает?

1 голос
/ 25 января 2012

Это будет работать независимо от того, существует ли одно из имен в вашем наборе в таблице userinfo.

ТАКЖЕ : Почему вы запускаете второй запрос, чтобы получить список идентификаторов из той же таблицы, которую вы пытаетесь обновить? Просто иди:

UPDATE userinfo 
SET status = something
WHERE name IN ('viki','nik','mike');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...