关于微博关注问题 急啊。。。。。。

ahkxhyl 发布于 2012/08/16 21:01
阅读 186
收藏 0
已经得到 我的关注数是9 (微博里面的关注我的人数数)
select ID from guanzhu where FID='$uid' //得到9个人关注我(其中FID是保存那些关注我 的那些人的UID)
现在我想要获取自己在所有会员里面 我的关注数是排多少名 请问怎么实现
加载中
0
小Leo
小Leo

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

FROM guanzhu as a

WHERE a.fid = '$uid'

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

郁闷了,十分郁闷。

愚钝了,实在是想不出来一个能一句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;

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