2012-03-05 85 views
0

所以,我有这样的MySQL查询:数据库查询限制

SELECT member_id, text FROM review WHERE text != "" ORDER BY date DESC LIMIT 2

这将返回最新的2条评论中,我的问题是,我可以以某种方式限制该查询返回两行具有相同member_id?我曾尝试在member_id前添加DISTINCT,但没有效果。

+1

group by member_id – Rufinus 2012-03-05 09:53:26

+0

不,他希望两行具有相同的member_id。 – fancyPants 2012-03-05 10:32:19

回答

0

您可以使用group by。但是如果你有两行以上的相同的ID,你不知道哪个文本会来。

SELECT r.member_id, r.text 
    FROM review r, (Select member_id, max(date) dat from review WHERE text != "" group by member_id) t1  
    WHERE r.member_id =t1.member_id and t1.dat=r.date 
    LIMIT 2 
+0

是的,我正在考虑使用group by,但如果你的日期正确,我需要最新的文字 – slash197 2012-03-05 10:04:52

+0

@pinkypower。该查询应该是有效的。你试过查询吗? – Kayser 2012-03-05 10:13:24

+0

是的,我做了,它返回2个月的结果 – slash197 2012-03-05 10:15:31

1

我可以采用某种限制该查询返回两行与相同member_id

如果您的会员ID是MEMBERID,您可以使用此查询。

SELECT member_id, 
     TEXT 
FROM review 
WHERE TEXT != "" 
     AND member_id = memberid 
ORDER BY DATE DESC 
LIMIT 2