选择MYSQL中的底部结果
我正在编写一个消息传递系统,我正在尝试选择按升序发送的最后10条消息(最新消息在底部) 但是,这样做有一个问题:( 这是我当前的SELECT语句,表中有30多行可用选择MYSQL中的底部结果,mysql,select,Mysql,Select,我正在编写一个消息传递系统,我正在尝试选择按升序发送的最后10条消息(最新消息在底部) 但是,这样做有一个问题:( 这是我当前的SELECT语句,表中有30多行可用 SELECT * FROM ( SELECT * FROM messages ORDER BY addedDate DESC LIMIT 10 ) tb WHERE ( senderID = "1" OR receiverID = "1" ) AND ( senderID = "3" OR receiverID = "3" )
SELECT * FROM
( SELECT * FROM messages ORDER BY addedDate DESC LIMIT 10 ) tb
WHERE ( senderID = "1" OR receiverID = "1" )
AND ( senderID = "3" OR receiverID = "3" )
ORDER BY addedDate ASC LIMIT 10
然而,由于某些原因,当使用发送方和接收方的不同组合时,如果行数少于我,则只返回7行,即使每个结果至少应为我提供所需的10行
是否有其他方法可用于获取匹配的底部10行:
WHERE ( senderID = "1" OR receiverID = "1" )
AND ( senderID = "3" OR receiverID = "3" )
但按升序选择底部的10个。子查询中应该有WHERE语句,而不是主查询 试试这个:
SELECT * FROM
( SELECT * FROM messages
WHERE ( senderID = "1" OR receiverID = "1" )
AND ( senderID = "3" OR receiverID = "3" )
ORDER BY addedDate DESC LIMIT 10 ) tb
ORDER BY addedDate ASC
您不需要第二个限制,因为子查询只得到10个结果。子查询中应该有WHERE语句,而不是主查询 试试这个:
SELECT * FROM
( SELECT * FROM messages
WHERE ( senderID = "1" OR receiverID = "1" )
AND ( senderID = "3" OR receiverID = "3" )
ORDER BY addedDate DESC LIMIT 10 ) tb
ORDER BY addedDate ASC
您不需要第二个限制,因为您只从子查询中获得10个结果