使用UNION时,ORDER BY和LIMIT不起作用

Adi*_*dil 0 mysql sql database union

这是我的查询:

mysql_query("SELECT userid FROM messages WHERE userid<>'$myid' AND friendid='$myid' AND status=1 UNION SELECT friendid FROM messages WHERE userid='$myid' AND friendid<>'$myid' AND status=1");
Run Code Online (Sandbox Code Playgroud)

我想添加分页,所以我需要限制我发送消息的朋友数量.但每当我添加LIMIT时,它都显示错误.此外,我想首先显示最新的消息,ORDER BY time DESC但这也不起作用.救命 ?

Mah*_*mal 6

将该查询包含在子查询和ORDER BY ... LIMIT...外部查询中:

SELECT *
FROM
(
    SELECT userid 
    FROM messages 
    WHERE userid   <> '$myid' 
      AND friendid = '$myid' 
      AND status = 1 
    UNION 
    SELECT friendid 
    FROM messages
    WHERE userid = '$myid' 
      AND friendid <> '$myid' 
      AND status = 1
) AS sub
ORDER BY ...
LIMIT ...;
Run Code Online (Sandbox Code Playgroud)