1
我有这个代码根据登录用户的ID对消息进行分组,代码的效果很好。但现在我希望做一些修改,我不知道要实现MySQL查询,然后按最近分组条件排序
我的查询代码
$query_messages = mysqli_query($link,"SELECT
PreQuery.*,
m2.message,
m2.senderID,
m2.receiverID
from
(SELECT
if(m.senderID < m.receiverID, m.senderID, m.receiverID) as Person1,
if(m.senderID < m.receiverID, m.receiverID, m.senderID) as Person2,
max(m.messageID) as LastMessageIDPerChat,
max(m.date) as LastMessageDate
FROM
messages m
WHERE
'$user' IN (senderID, receiverID)
GROUP BY
Person1,
Person2
ORDER BY
m.date ASC
LIMIT 10) PreQuery
JOIN messages m2
on PreQuery.LastMessageIDPerChat = m2.messageID ORDER BY
date DESC");
$row_messages = mysqli_fetch_assoc($query_messages);
$totalRows_messages = mysqli_num_rows($query_messages);
DB结构
简要说明
比方说 *的登录用户$用户
在数据库中的用户可以是senderID或receiverID
当$用户删除变量自己对话中,他的消息从更新为 in senderdelete列或接收者删除列*
是问题是: -
我将要修改的mysqli的查询代码,这增加了查询
if $user is the sender then senderdelete should be value 0
和
if $user is the receiver then receiverdelete should be value 0
任何帮助吗?
为了避免未来的歧义,特别是在扩大的复杂条件下,尽量为其中包装等('$ user'= senderID和senderdelete = 0)OR('$ user'= receiverID和receiverdelete = 0) – DRapp
我将在我的编程中使用这些更改@DRapp。我很满意支持 –