@kiril9011

Как получать только последнее сообщение из серии одинаковых?

Здравствуйте! Мой код:
SELECT *, SUBSTRING(mes, 1, 30) AS `mes`, DATE_FORMAT(date120, '%d.%m.%Y, %H:%i') as date_mes2
FROM mes
WHERE `user_id` = (
  SELECT `user_id`
  FROM `mes`
  WHERE `user_id` = '{$_SESSION['login']}'
  LIMIT 1
) OR `user_idor` = (
  SELECT `user_idor`
  FROM `mes`
  WHERE `user_idor` = '{$_SESSION['login']}'
  LIMIT 1
)
ORDER by id DESC

В общем, мне надо поставить здесь условие: если получатель и отправитель одинаковые 3 сообщения подряд, то выводит последнюю строку.
Если вопросы спрашивайте.
  • Вопрос задан
  • 144 просмотра
Пригласить эксперта
Ответы на вопрос 1
@Vitsliputsli
Вывод последней строки при совпадении login с user_id или user_idor (последняя, та что имеет наибольшее значение в поле id):
SELECT 
        *, 
        SUBSTRING(mes, 1, 30) AS `mes`,
        DATE_FORMAT(date120, '%d.%m.%Y, %H:%i') as date_mes2
    WHERE user_id=:login OR user_idor=:login
    ORDER BY id DESC
    LIMIT 1


Зачем вверху конструкции в скобках, я так и не понял. Было бы лучше, если бы вы описали что должен выводить запрос, а не только про отдельные случаи.
Ответ написан
Ваш ответ на вопрос

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

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