Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP对SQL结果进行双重排序_Php_Mysql_Sql_Sorting - Fatal编程技术网

使用PHP对SQL结果进行双重排序

使用PHP对SQL结果进行双重排序,php,mysql,sql,sorting,Php,Mysql,Sql,Sorting,我用一个左连接来获得排名靠前的帖子,一个表中有排名靠前的帖子,另一个表中有帖子信息来获得最近两周发布的排名靠前4的帖子。我得到这些信息的方法就是按排名靠前的人排序。但是,我希望我的前4名结果不是按其排名voting.vote的顺序出现,而是按其发布日期条目的顺序出现。id。我不确定这样做的最佳方式是什么。下面是我的SQL语句,它当前用于显示时间范围内排名前4位的项目 $result = mysql_query("SELECT entries.permalink, entries.title, v

我用一个左连接来获得排名靠前的帖子,一个表中有排名靠前的帖子,另一个表中有帖子信息来获得最近两周发布的排名靠前4的帖子。我得到这些信息的方法就是按排名靠前的人排序。但是,我希望我的前4名结果不是按其排名voting.vote的顺序出现,而是按其发布日期条目的顺序出现。id。我不确定这样做的最佳方式是什么。下面是我的SQL语句,它当前用于显示时间范围内排名前4位的项目

$result = mysql_query("SELECT entries.permalink, entries.title, voting.vote FROM entries LEFT JOIN voting ON voting.id = entries.id WHERE date>='$twoweeks' ORDER BY voting.vote DESC LIMIT 4");    
是否有一种方法可以让4行结果按entries.id排序,还是只需要在php外部使用数组等进行排序

下面的编辑是从评论中提取的信息的解决方案

SELECT *
FROM
(
SELECT 
  entries.permalink, 
  entries.title, 
  voting.vote,
  entries.id
FROM entries 
LEFT JOIN voting ON voting.id = entries.id 
WHERE date>='$twoweeks' 
ORDER BY voting.vote DESC 
LIMIT 4
) t
ORDER BY id; 
但是,我不希望我的前4名结果按它们的顺序出现 排名投票。投票,但按其发布日期的顺序 条目.id

试试这个:

SELECT *
FROM
(
    SELECT 
      entries.permalink, 
      entries.title, 
      voting.vote 
    FROM entries 
    LEFT JOIN voting ON voting.id = entries.id 
    WHERE date>='$twoweeks' 
    ORDER BY voting.vote DESC 
    LIMIT 4
) t
ORDER BY entries.id; 
-- Or ORDER BY entries.published date; 

我试过了,但仍然没有从查询中得到任何结果。还有别的想法吗?感谢mysql_querySELECT*FROM SELECT entries.permalink、entries.title、voting.vote FROM entries LEFT JOIN voting ON voting.id=entries.id其中entries.category如“%For Sale%”和date>=“$twoweeks”ORDER BY voting.vote DESC LIMIT 4 t ORDER BY entries.id;事实上,我找到了关于为什么一切都不起作用的答案。我还需要在我的内部SELECT中查询我的id号,以便在外部ORDER BY中使用。本质上,我只需要在内部select中添加entries.id。