按视图顺序排序,然后按另一列排序

字符4

我有一个查询,该查询从数据库的视图顺序中选择*,并限制为4:

SELECT * FROM articles WHERE visible = 1 ORDER BY views LIMIT 4;

但是在同一查询中,我想查找所有其他按列updated_at排序的行。

我试过像这样的东西,但是不起作用:

(SELECT * FROM articles ORDER BY views DESC LIMIT 4)
UNION
(SELECT * FROM articles ORDER BY updated_at DESC);

提议这是“固定”主页上最热门的4篇文章,然后按时间排序。

有什么办法可以在同一查询中以多种方式进行ORDER,而无需重复行?

我怎样才能做到这一点?

从MySQL文档

... UNION的默认行为是从结果中删除重复的行。...

...如果ORDER BY在SELECT中没有LIMIT出现,则将对其进行优化,因为它始终无效。...

因此,这里的技巧是limit在第二个查询中使用(由您来选择限制):

(SELECT * FROM articles WHERE visible = 1 ORDER BY views DESC LIMIT 4)
UNION
(SELECT * FROM articles WHERE visible = 1 ORDER BY updated_at DESC LIMIT 100);

该查询已在MySQL 5.6和5.7中进行了测试。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

按一列排序,然后按另一列排序

在Pandas Dataframe中按一列排序,然后按另一列分组?

Excel-按列对行进行分组,然后按另一列进行排序

在同一列上按数字排序然后按字母数字排序

电子表格:按一列条目的前n个字符排序,然后按另一列排序

按一列对多个定界文件按字典顺序排序,对另一列按数字顺序排序

如何按字母顺序对 csv 数据进行排序,然后按列按数字排序?

按值对Hashmap排序,然后按字母顺序排序

Linq按属性排序,然后按原始顺序排序

在Dask数据框上进行groupby,然后按一列排序

MYSQL-如何使用ORDER BY和LIMIT对列进行排序,然后按另一列对这些结果进行排序

C-按计数排序,然后按字母顺序

如何对 Dataframe 中的 2 列进行排序,一列按降序排序,另一列按对应于第一列的字母顺序排序

dplyr :: summarize_at –按传递的变量顺序对列进行排序,然后按应用的功能顺序对列进行排序

按一列与另一列的值完全相同的顺序排序

SQL:按顺序排序-如果出现并列,则对另一列进行排序

按多列排序,按另一列分组

首先按第一列然后按第二列对2D列表进行排序

SQL:按rowID然后按基于rowid的列排序

我如何排除某些薪水,然后按顺序排序?

MySQL按列分组,然后按另一列计数

创建直方图,按列分组,然后按R中的另一列求和

如何在外壳脚本中按字母顺序对第二列进行排序,然后按数字排序?

如何使用sort_by按字母顺序然后按数字顺序然后按特殊字符排序

按数据属性(按字母顺序,然后按数字顺序)对列表项进行排序

按列分组,对另一列进行排序,然后为python中的行分配等级

对于给定的熊猫df,按一列对df排序(首先是最高的SUMMED值),然后在每个唯一值顺序内按另一列排序

mysql排序方式,从一个单词开始,然后按字母顺序

熊猫value_counts:按值排序,然后按字母顺序排序?