2
回答
关于微博关注问题 急啊。。。。。。
华为云实践训练营,热门技术免费实践!>>>   
已经得到 我的关注数是9 (微博里面的关注我的人数数)
select ID from guanzhu where FID='$uid' //得到9个人关注我(其中FID是保存那些关注我 的那些人的UID)
现在我想要获取自己在所有会员里面 我的关注数是排多少名 请问怎么实现
举报
ahkxhyl
发帖于5年前 2回/176阅
共有2个答案 最后回答: 5年前

SELECT (SELECT COUNT(*) FROM guanzhu WHERE guanzhu.ID<=a.ID) AS paiming

FROM guanzhu as a

WHERE a.fid = '$uid'

--- 共有 2 条评论 ---
小Leo回复 @ahkxhyl : 不是查不出来 是你这样说问题 太不方便 你最好贴一些数据库的结构 我写的这里的ID相当于你的关注9 5年前 回复
ahkxhyl谢谢了 这条语句是差不出来的哦 5年前 回复

郁闷了,十分郁闷。

愚钝了,实在是想不出来一个能一句SQL搞定办法,LS的是实现类似与Oracle的rownum的语句,貌似不能查处排序。我就想了个用临时表查询的办法:

CREATE TEMPORARY TABLE tmp_sort (
    id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
    fid INT UNSIGNED NULL DEFAULT NULL
);

INSERT INTO tmp_sort(pid) SELECT t.fid FROM (SELECT COUNT(id) AS numrows,fid FROM test2 GROUP BY fid ORDER BY numrows DESC) AS t;

SELECT id FROM tmp_sort WHERE fid=$fid;

DROP TABLE tmp_sort;

--- 共有 3 条评论 ---
飞晏回复 @ahkxhyl : 加临时表是复杂了,不过这样的表设计的时候就应该在用户信息表加上关注数量和被关注数量,这样虽然增加一些业务逻辑,排序比较高效。 5年前 回复
ahkxhyl谢谢了 只是问题复杂化了 5年前 回复
ahkxhyl这个怎么使用的哦临时表还没搞过哦 5年前 回复
顶部