gpt4 book ai didi

mysql - 分别排序两个查询,然后加入它们

转载 作者:行者123 更新时间:2023-11-29 02:46:32 26 4
gpt4 key购买 nike

我正在设计一个评论系统,用户首先看到他们的评论(最新的在前),然后是任何其他用户的评论(最新的在前)。所以最后它看起来像:

  1. 我的评论 1(12 月 3 日)

  2. 我的评论 2(12 月 2 日)

  3. 我的评论 3(12 月 1 日)
  4. 不是我的评论 1(12 月 5 日)
  5. 不是我的评论 2(12 月 4 日)
  6. 不是我的评论 3(12 月 3 日)

所以要从我的表中提取信息:

SELECT * FROM ( SELECT * FROM testTable WHERE me='1' ORDER BY `lastReply` DESC ) DUMMY1
UNION
SELECT * FROM (SELECT * FROM testTable ORDER BY `lastReply` DESC) DUMMY2

这只是我想要的,而不是按 lastReply 降序排序(因此用户最新的评论在第一位)而是按 lastReply 升序排序(因此用户最旧的评论在第一位)。对于我的生活,我无法弄清楚为什么会这样。有什么建议吗?

您可以在此处查看表格的简化版本:

mysqli_query($con," CREATE TABLE testTable( text varchar(255), me varchar(255), lastReply varchar(255) ) "); 
mysqli_query($con,"INSERT INTO testTable (text, me , lastReply) VALUES ('A',1,3),('E',0,2),('C',1,1) , ('D',0,1) , ('B',1,2) ,('F',0,3) ");


echo '<table border="1">';
while($arrayrow = mysqli_fetch_array($result)) {
echo '<tr><td>'.$arrayrow['text'].'</td><td>'.$arrayrow['me'].'</td><td>'.$arrayrow['lastReply'].'</td></tr>';
};
echo '</table>';

最佳答案

SELECT * from (
SELECT *,0 as sort_order FROM table WHERE IP='userIP'
UNION
SELECT *,1 as sort_order FROM table WHERE IP <>'userIP'
)tmp
ORDER by sort_order asc, lastReply Desc

关于mysql - 分别排序两个查询,然后加入它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41435930/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com