gpt4 book ai didi

php - 如何查询具有特定属性的至少 X 个结果

转载 作者:行者123 更新时间:2023-11-29 07:24:49 25 4
gpt4 key购买 nike

我正在尝试获取一定数量的行,其中另一数量的行满足特定条件。

我会解释一下。

表 1:

  ID     |   NAME
1 | Thomas
2 | Jason
3 | Oleg
4 | Matt
5 | Sheldon
6 | Jenny

表 2:

  ID     |   ACTIVE
1 | 1
2 | 0
3 | 1
4 | 1
5 | 0
6 | 1

查询:

SELECT tbl_1.ID, tbl_1.NAME, tbl_2.ACTIVE
FROM tbl_1 JOIN tbl_2 ON
tbl_1.ID = tbl_2.ID
WHERE tbl_2.ACTIVE=1
LIMIT 5

在此示例中,我希望至少有 5 个用户,其中 3 个处于事件状态。当然,上面的查询不会正确完成这项工作,因为它将总行数限制为 5。但是结果中的 3 行(如果不再存在则更少)必须是 active .

我能想到的完成这项工作的另一种方法是联合,但我的查询是如此繁琐、漫长和复杂。

有什么想法吗?

最佳答案

使用ORDER BY代替:

SELECT tbl_1.ID, tbl_1.NAME, tbl_2.ACTIVE
FROM tbl_1 JOIN
tbl_2
ON tbl_1.ID = tbl_2.ID
ORDER BY (tbl_2.ACTIVE = 1) DESC
LIMIT 5;

这会将活跃用户置于列表顶部,然后用其他用户填充其余部分。

注意:ORDER BY 子句可以简单地为 ORDER BY tbl_2.ACTIVE DESC。我保留了 bool 逻辑,以便您可以看到与 WHERE 子句的相似性。

关于php - 如何查询具有特定属性的至少 X 个结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34899225/

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