Php MySQL查询,按分组,然后按最新分组条件排序
我有一段代码,它根据登录用户的ID对消息进行分组,代码工作得很好。但现在我想做一些修改,我不知道如何实现 我的查询代码 及Php MySQL查询,按分组,然后按最新分组条件排序,php,mysql,mysqli,Php,Mysql,Mysqli,我有一段代码,它根据登录用户的ID对消息进行分组,代码工作得很好。但现在我想做一些修改,我不知道如何实现 我的查询代码 及 有什么帮助吗?我在where子句中添加了这一点,它似乎起作用了 WHERE '$myid' IN ( senderID ) AND senderdelete = 0 OR '$myid' IN ( receiverID ) AND receiverdelete = 0 完整更新代码 $query_messages = mysqli_query($link,"SEL
有什么帮助吗?我在where子句中添加了这一点,它似乎起作用了
WHERE
'$myid' IN ( senderID ) AND senderdelete = 0
OR
'$myid' IN ( receiverID ) AND receiverdelete = 0
完整更新代码
$query_messages = mysqli_query($link,"SELECT
PreQuery.*,
m2.message,
m2.senderID,
m2.receiverID,
m2.senderdelete,
m2.receiverdelete
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
'$myid' IN ( senderID) AND senderdelete = 0 OR '$myid' IN ( receiverID) AND receiverdelete = 0
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);
我在where子句中添加了这一点,它似乎起了作用
WHERE
'$myid' IN ( senderID ) AND senderdelete = 0
OR
'$myid' IN ( receiverID ) AND receiverdelete = 0
完整更新代码
$query_messages = mysqli_query($link,"SELECT
PreQuery.*,
m2.message,
m2.senderID,
m2.receiverID,
m2.senderdelete,
m2.receiverdelete
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
'$myid' IN ( senderID) AND senderdelete = 0 OR '$myid' IN ( receiverID) AND receiverdelete = 0
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);
为了避免将来出现歧义,特别是在扩展的复杂条件下,请尝试包装,例如“$user'=senderID和senderdelete=0或“$user'=receiverID和receiverdelete=0,我将在我的程序@DRapp中使用这些更改。我非常支持避免将来出现歧义,特别是在扩展的复杂条件下,尝试包装,例如“$user'=senderID和senderdelete=0或“$user'=receiverID和receiverdelete=0。我将在我的程序@DRapp中使用这些更改。我非常感谢这些支持
$query_messages = mysqli_query($link,"SELECT
PreQuery.*,
m2.message,
m2.senderID,
m2.receiverID,
m2.senderdelete,
m2.receiverdelete
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
'$myid' IN ( senderID) AND senderdelete = 0 OR '$myid' IN ( receiverID) AND receiverdelete = 0
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);