Следующее дает вам последняя запись (при условии, что чем больше id
, тем позже он был создан) соответствует вашим критериям :
SELECT * FROM `user_chats`
WHERE (`sender_id` =2 AND `receiver_id` =3) OR (`sender_id` =3 AND `receiver_id` =2)
ORDER BY `id` DESC
LIMIT 1
, что было бы неплохо, если бы id
был первичным ключом, и он повышался вместе с ростом значения created
. В противном случае (если вы не уверены, что id
повышается при created
повышении), замените строку ORDER BY
следующим:
ORDER BY `created` DESC
Кроме того, в обоих случаях ставит правильные индексы в: id
(если это ваш первичный ключ, тогда нет необходимости добавлять в него дополнительный индекс), sender_id
и receiver_id
(предпочтительно составной индекс, то есть единый индекс для обоих столбцов), created
(если вы хотите использовать ORDER BY created DESC
вместо ORDER BY id DESC
- в противном случае в этом нет необходимости).