gpt4 book ai didi

mysql:SELECT WHERE id IN() 等

转载 作者:行者123 更新时间:2023-11-29 13:21:41 25 4
gpt4 key购买 nike

我使用此查询从 MySQL 数据库中选择一组记录:

SELECT * 
FROM table
WHERE id IN(10,14,12,11,8,7,4)
AND actief='on'
ORDER BY FIELD(id,10,14,12,11,8,7,4)

这将为我提供给定的 ID。在这种情况下我最多会得到 7 条记录。但如果 ID“14”具有 active=“off”,则该值可能会更少。

但是我需要的是一组 20 条记录,其中 het 列表 IN(10,14,12,11,8,7,4) 必须 位于如果它们也满足条件 active='on',则结果。如果返回 6 条记录,那么我希望查询选择另外 14 条记录。首先选择最高的 ID,必须满足 active='on' 并且可能尚未出现在结果中。

这可以通过一条SQL语句来实现吗?或者我应该首先将提及查询的结果放入一个数组中,然后在第二个数组中选择剩余的记录。最后将它们也放入数组中?

最佳答案

您想要对结果进行排序而不是过滤。我认为这是您想要的查询:

SELECT *
FROM table
ORDER BY (id IN(10,14,12,11,8,7,4) AND actief = 'on') desc,
FIELD(id,10,14,12,11,8,7,4),
id desc
LIMIT 20;

编辑:

最终的解决方案只需要actief = 'on',所以:

SELECT *
FROM table
WHERE actief = 'on'
ORDER BY (id IN (10,14,12,11,8,7,4)) desc,
FIELD(id,10,14,12,11,8,7,4),
id desc
LIMIT 20;

关于mysql:SELECT WHERE id IN() 等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20746971/

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