Как это сделать в MySQL: если id = idold, ТО ОБНОВЛЕНИЕ статус = 1 - PullRequest
1 голос
/ 25 декабря 2008

Я хотел бы сравнить две таблицы и затем обновить, если какая-то логика верна,

В псевдокоде:

SELECT * FROM users, usersold IF users.id=usersold.id THEN UPDATE users.status=1;

Есть ли способ сделать это в MySQL?

1 Ответ

5 голосов
/ 25 декабря 2008
UPDATE users u
SET status = 1
WHERE EXISTS (SELECT id FROM usersold WHERE id = u.id)

Альтернативная версия:

UPDATE users
SET status = 1
WHERE id IN (SELECT id FROM usersold)

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...