Информация об изменениях

Сообщение Re[3]: SELECT и UPDATE одним запросом от 14.12.2017 15:51

Изменено 14.12.2017 15:54 VladCore

Re[3]: SELECT и UPDATE одним запросом
V>Я пытаюсь так
V>
V>UPDATE links SET post='1' WHERE url in 
V>(SELECT url FROM links WHERE post = '0' AND keywords = 'key');
V>


На вид этот update ничего кроме кол-ва обновленных строк не вернет.

Вам правильно посоветовали Select ... For Update;
MySQL умеет Select For Update — конкурентные читатели первого Select будут ждать пока не отработает второй Update:

SELECT url FROM links WHERE post = '0' AND keywords = 'key' for update;
UPDATE links SET post='1' WHERE keywords = 'key';


пробовали?
Re[3]: SELECT и UPDATE одним запросом
V>Я пытаюсь так
V>
V>UPDATE links SET post='1' WHERE url in 
V>(SELECT url FROM links WHERE post = '0' AND keywords = 'key');
V>


На вид этот update ничего кроме кол-ва обновленных строк не вернет.

Вам правильно посоветовали Select ... For Update;
MySQL умеет Select For Update — конкурентные читатели первого Select будут ждать пока не отработает второй Update:

START TRANSACTION;
SELECT url FROM links WHERE post = '0' AND keywords = 'key' for update;
UPDATE links SET post='1' WHERE keywords = 'key';
COMMIT;


пробовали?