@webdiez
Меня все знают как WebDiez.

Как найти строку по значению и изменить соседнее значение?

Есть запрос который работает, но в двух запросах. К сожалению не работает корректно в PHP.
SET @id = (SELECT id FROM `request` WHERE user_id = '97' ORDER BY `id` DESC LIMIT 1);UPDATE request SET message = 'text' WHERE id LIKE @id;


Я б использовал:

UPDATE request SET message = 'text' WHERE id = (SELECT message FROM `request` WHERE user_id = '97' ORDER BY `id` DESC LIMIT 1)


но он не работает в MySQL 5.6.
Необходимо учитывать что user_id может быть не уникальным и необходимо менять в последней строке.
Уникальный только id.
  • Вопрос задан
  • 41 просмотр
Решения вопроса 1
@Akina
Сетевой и системный админ, SQL-программист.
WebDiez
Затупил.. Нашел вариант..

Пока надо обновлять для строго одной записи - сойдёт. А вообще
UPDATE request 
JOIN ( SELECT MAX(id) id 
       FROM request 
       WHERE user_id IN ( '97'  /* список */ )
     ) subquery USING ( id )
SET request.message = 'text';
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@webdiez Автор вопроса
Меня все знают как WebDiez.
Затупил.. Нашел вариант..
UPDATE request SET message = 'text' WHERE user_id = '97' ORDER BY `id` DESC LIMIT 1
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы