gpt4 book ai didi

mysql - SQL 查询以选择最少 10 个结果

转载 作者:可可西里 更新时间:2023-11-01 06:42:50 25 4
gpt4 key购买 nike

我想返回两种类型的结果:

  • 未读通知
  • 阅读通知

如果有 > 10 个未读通知可用,我想选择尽可能多的通知

如果 <= 10,我想选择所有(假设有 7 个)未读通知和 3 个“填充”已读通知。我怎样才能做到这一点?

如果我只想选择所有未读通知,我的查询将是:

SELECT * FROM notifications WHERE read = 0

如果我只想选择所有已读通知,我的查询将是:

SELECT * FROM notifications WHERE read = 1

最佳答案

这应该可以帮助您:http://sqlfiddle.com/#!9/e7e2a/2

SELECT * FROM 
(
SELECT @rownum := @rownum + 1 AS rownum, name, read
FROM notifications,
(SELECT @rownum := 0) r --initialise @rownum to 0
) t
WHERE read = 0 OR (read = 1 AND rownum <= 10)
ORDER BY rownum

记录用@rownum 编号。 where 子句确保首先选择 read=0。如果最多 10 个或更多,则全部选择。但如果不是,第二个标准(read = 1 AND rownum <= 10)已检查。

(SELECT @rownum := 0) r初始化 @rownum到 0 否则它将是 NULLNULL+1=NULL

enter image description here

关于mysql - SQL 查询以选择最少 10 个结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30341655/

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