这可能是重复的。我不确定要搜索什么,所以我找不到任何东西。
$get_feed_p=mysql_query("SELECT followed FROM follow WHERE user='$_COOKIE[PC_ID]'");
while($feed_p=mysql_fetch_assoc($get_feed_p)){
$get_feed=mysql_query("SELECT * FROM status WHERE to_user='$feed_p[followed]' ORDER BY id DESC LIMIT 20");
}
所以首先查询选择跟随的配置文件(比如在推特上) 第二个选择状态更新。
我遇到的问题是订购。因为我使用WHERE to_user = $ feed_p [follow]所有状态都按用户排序,而不是我需要的id。
如何仅按ID对行进行排序?
答案 0 :(得分:2)
如果我已经解释了您正在尝试正确执行的操作(列出用户发布的所有状态,请按照状态ID列出,最近的第一个?),然后您要执行此操作:
$get_feed = mysql_query("SELECT status.* FROM follow
RIGHT JOIN status ON status.to_user = follow.followed
WHERE follow.user = '" . $_COOKIE[PC_ID . "' ORDER BY status.id DESC LIMIT 20")
真的希望这是你所寻找的,因为这是我的第一个答案。
答案 1 :(得分:0)
使用连接而不是多次选择怎么样? 有点像(我在我的手机上,因此无法尝试,我可能会在周末深入了解):
SELECT follow.followed, status.id FROM follow LEFT JOIN status ON status.id IN ( SELECT id FROM status WHERE follow.user = status.to_user ORDER BY id LIMIT 20 ) WHERE followed.user = '$_COOKIE[PC_ID]'
答案 2 :(得分:0)
假设包含用户的表是user_tbl(user和ids):
"SELECT * FROM status WHERE
to_user='$feed_p[followed]' ORDER BY
(select id from users_tbl where username='$feed_p[followed]') DESC LIMIT 20"