如何通过排除组数组来获取MySQL表的前N条记录?

火山

这是一个表格示例:

Table: websites

Domain            | Category | Popularity

google.com        | 0        | 13,430
yahoo.com         | 0        | 1,094
facebook.com      | 1        | 23,943
youtube.com       | 2        | 17,320
imdb.com          | 3        | 6,094
stackoverflow.com | 4        | 2,930
ebay.com          | 5        | 5,748
yandex.com        | 5        | 3,748

我想通过排除按流行度排序的类别CE = [C1,C2,C3 ... Cn]来返回前N个结果。

例如:

通过按流行程度将搜索引擎CE = [0]排除在外的前3个结果是:

Domain            | Category | Popularity

facebook.com      | 1        | 23,943
youtube.com       | 2        | 17,320
imdb.com          | 3        | 6,094

通过排除按受欢迎程度排序的搜索引擎CE = [1,2,3,4,5]以外的所有类别,得出前3名结果是:

Domain            | Category | Popularity

google.com        | 0        | 13,430
yahoo.com         | 0        | 1,094

让我们处理最后一个查询。

我希望它看起来像这样:

SELECT domain, category, popularity FROM (SELECT domain, category, popularity FROM websites WHERE category != [1, 2, 3, 4, 5] ORDER BY popularity) LIMIT 0, 3
  1. 如何将一组排除类别作为WHERE语句传递?
  2. 如何按受欢迎程度升序/降序订购?
  3. 我应该在选择具有正确类别类型的代码之前(或性能之后)订购吗?

我不在乎响应是否按受欢迎程度排序。那是我可以重做客户端的事情

我知道这是核心级的东西,但是有什么方法可以加快速度吗?毕竟是整个表扫描!

亚当·麦克331

您可以使用LIMIT子句来执行此操作,所有要做的就是确保WHERE子句过滤掉不需要的类别。尝试这个:

SELECT *
FROM myTable
WHERE category NOT IN(category, list)
ORDER BY popularity DESC
LIMIT 3;

在列表中传递的方法是找到一种方法,以逗号分隔要过滤的类别的列表。有关更多信息,IN运营商,看到这个链接。

这是一个SQL Fiddle示例,显示了两个示例案例。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何通过排除组数组来获取MySQL表的前N条记录?

来自分类Dev

如何通过获取每个组中的最后一条记录来删除重复的记录

来自分类Dev

获取表中的前100条记录

来自分类Dev

如何从numpy数组中获取N条记录?

来自分类Dev

如何从mysql中的每个表中导出N条记录?

来自分类Dev

通过保留前100条记录从表中删除记录

来自分类Dev

如何从Redis获取前100条记录

来自分类Dev

如何通过使用mysql降序获得每个组的5条记录?

来自分类Dev

不了解查询如何从每个组中检索前n条记录

来自分类Dev

从每个组中选择前n条记录

来自分类Dev

访问中每个组sql的前n条记录

来自分类Dev

如何在mongodb中获取每个组的最新N条记录?

来自分类Dev

如何根据desc的devicetimestamp顺序从每个表中获取前1条记录

来自分类Dev

使用SQL获取前k条记录/表中的行

来自分类Dev

转储每个表的前1000条记录的MySQL模式

来自分类Dev

如何获取组之间的第一条记录和最后一条记录?

来自分类Dev

如何排除Mysql组

来自分类Dev

获取每个组的前5条记录,并在每个组的行中将它们串联

来自分类Dev

dplyr-如何通过更多(总和)销售来筛选前n个组?

来自分类Dev

使用Postgresql查询检索JSON数组的前N条记录

来自分类Dev

获取mysql表中的最后一条记录

来自分类Dev

如何确定Javascript数组对象中的前2条记录

来自分类Dev

如何使用 Eloquent 获取最后 9 条记录但排除具有特定 ID 的记录?

来自分类Dev

如何在Cassandra 2.2中获取前5条记录

来自分类Dev

如何在Cassandra 2.2中获取前5条记录

来自分类Dev

使用Include()时如何通过id获取单条记录

来自分类Dev

获取DynamoDB表中的最后N条记录

来自分类Dev

使用where条件从表中获取最新的N条记录

来自分类Dev

获取DynamoDB表中的最后N条记录

Related 相关文章

  1. 1

    如何通过排除组数组来获取MySQL表的前N条记录?

  2. 2

    如何通过获取每个组中的最后一条记录来删除重复的记录

  3. 3

    获取表中的前100条记录

  4. 4

    如何从numpy数组中获取N条记录?

  5. 5

    如何从mysql中的每个表中导出N条记录?

  6. 6

    通过保留前100条记录从表中删除记录

  7. 7

    如何从Redis获取前100条记录

  8. 8

    如何通过使用mysql降序获得每个组的5条记录?

  9. 9

    不了解查询如何从每个组中检索前n条记录

  10. 10

    从每个组中选择前n条记录

  11. 11

    访问中每个组sql的前n条记录

  12. 12

    如何在mongodb中获取每个组的最新N条记录?

  13. 13

    如何根据desc的devicetimestamp顺序从每个表中获取前1条记录

  14. 14

    使用SQL获取前k条记录/表中的行

  15. 15

    转储每个表的前1000条记录的MySQL模式

  16. 16

    如何获取组之间的第一条记录和最后一条记录?

  17. 17

    如何排除Mysql组

  18. 18

    获取每个组的前5条记录,并在每个组的行中将它们串联

  19. 19

    dplyr-如何通过更多(总和)销售来筛选前n个组?

  20. 20

    使用Postgresql查询检索JSON数组的前N条记录

  21. 21

    获取mysql表中的最后一条记录

  22. 22

    如何确定Javascript数组对象中的前2条记录

  23. 23

    如何使用 Eloquent 获取最后 9 条记录但排除具有特定 ID 的记录?

  24. 24

    如何在Cassandra 2.2中获取前5条记录

  25. 25

    如何在Cassandra 2.2中获取前5条记录

  26. 26

    使用Include()时如何通过id获取单条记录

  27. 27

    获取DynamoDB表中的最后N条记录

  28. 28

    使用where条件从表中获取最新的N条记录

  29. 29

    获取DynamoDB表中的最后N条记录

热门标签

归档