我期望的是 tmp.rank在继续下一个之前1-10
为每个增加,但是我得到的只是它保留在每条记录上,因此不限制每个.userid
userid
1
10
userid
任何想法我做错了什么,很可能是一些简单而明显的事情,或者更有可能以非预期的方式使用 SQL。
SELECT DISTINCT
tmp.title,
tmp.content,
tmp.postid,
tmp.userid,
tmp.screenname,
tmp.email
FROM
(
SELECT
qp.title,
qp.content,
qp.postid,
ut.userid,
ut.screenname,
ut.email,
qp.created,
@rownum := IF( @prev = ut.userid, @rownum+1, 1 ) AS rank,
@prev := ut.userid
FROM
user_table AS ut JOIN (SELECT @rownum := NULL, @prev := 0) AS r ,
qa_posts AS qp,
qa_categories AS qc,
expatsblog_country AS cc
WHERE
LOWER(ut.country_of_expat) = LOWER(qc.title)
AND ut.setting_notifications IN (3)
AND ut.valid=1
AND ut.confirm_email = 1
AND qc.categoryid = qp.categoryid
AND qp.type='Q'
AND DATE(qp.created)>=DATE_SUB(NOW(), INTERVAL 24 HOUR)
ORDER BY ut.userid,qp.created ASC
) AS tmp
WHERE tmp.rank < 10
ORDER BY tmp.userid, tmp.created ASC