gpt4 book ai didi

sql - 在 SQL Select 中维护 WHERE 顺序

转载 作者:行者123 更新时间:2023-12-01 15:30:47 25 4
gpt4 key购买 nike

在对特定记录进行 SELECT 时,是否可以保持 WHERE 子句的顺序?

例如,给定以下 SELECT 语句:

SELECT [RecSeq] FROM [MyData] WHERE
[RecSeq]=3 OR [RecSeq]=2 OR [RecSeq]=1 OR [RecSeq]=21 OR [RecSeq]=20 OR
[RecSeq]=19 OR [RecSeq]=110 OR [RecSeq]=109 OR [RecSeq]=108 OR
[RecSeq]=53 OR [RecSeq]=52 OR [RecSeq]=51;

我希望结果返回为:

3
2
1
21
20
19
110
109
108
53
53
51

但是,我返回的内容并没有按任何特定顺序排列。目前我有一个循环,它为每个需要的记录调用 SELECT 语句。这可能在 1 到 700,000 次之间的任何地方。不用说性能不是最好的。

有任何解决方案还是我陷入了循环?

最佳答案

您需要 ORDER BY FIELD 子句。

SELECT RecSeq From MyData WHERE RecSeq IN (3, 2, 1, 21, 20, 19, 110, 109, 108, 53, 52, 51)
ORDER BY FIELD (RecSeq, 3, 2, 1, 21, 20, 19, 110, 109, 108, 53, 52, 51);

你没有说你使用的是什么数据库系统 - 我知道这在 MySQL 中有效。

关于sql - 在 SQL Select 中维护 WHERE 顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1167858/

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