Задать вопрос
@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.
  • Вопрос задан
  • 54 просмотра
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 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
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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