当前位置: 首页 > 面试题库 >

以预定义的顺序返回查询结果

陶星波
2023-03-14
问题内容

是否可以以SELECT预定顺序进行声明,即 选择ID 7,2,5,9和8 并以该顺序返回它们 ,仅基于ID字段?

这两个语句以相同顺序返回它们:

SELECT id FROM table WHERE id in (7,2,5,9,8)



SELECT id FROM table WHERE id in (8,2,5,9,7)

问题答案:

我不认为这是可能的,但是在这里找到了一个博客条目,似乎可以满足您的需求:

SELECT id FROM table WHERE id in (7,2,5,9,8) 
ORDER BY FIND_IN_SET(id,"7,2,5,9,8");

将给不同的结果

SELECT id FROM table WHERE id in (7,2,5,9,8) 
ORDER BY FIND_IN_SET(id,"8,2,5,9,7");

[FIND_IN_SET](http://dev.mysql.com/doc/refman/5.0/en/string- functions.html#function_find-in- set)返回id给定第二个参数的位置,因此对于上面的第一种情况,id7的位置在集合中的位置1,2的位置在2,依此类推-mysql在内部得出类似

id | FIND_IN_SET
---|-----------
7  | 1
2  | 2
5  | 3

然后按的结果排序FIND_IN_SET



 类似资料:
  • 我有下表,其中包含PostID和到rootPostId的映射 我有以下疑问: 返回结果: 我希望返回以下内容,以便返回的第一个postId是传递到查询中的相应postId(postId=2),如下所示。 返回所需结果:

  • 我使用Laravel查询生成器来获取一组行,按2列排序,然后(以前为)。然而,结果按(正确)对它们进行排序,但是(或)的次要顺序是不正确的。我是不是搞错了,是不是搞错了? 以下是我的问题: 这反过来又返回: 你看,14号票的顺序是71,75,72,而不是71,72,75。 以下是表格结构:

  • 问题内容: 我正在使用Newtonsoft的Json.Net从以下json中选择节点: 以下C#代码段 产量: 现在,这很酷,我想做的是按客户端代码过滤,我认为 可以,但是我显然对语法不够了解。这将返回一个空列表: 并且单个令牌选择器返回null: 我在https://jsonpath.curiousconcept.com/上尝试了几种不同的配置,看来我的查询语法确实坏了。 使用Flow Comm

  • 我有一个mongo收藏,大约有60万份文档。我正在枚举集合,按_id排序。但是,文档不会按排序顺序返回。它们似乎是根据ObjectId的时间戳部分正确排序的,但不是根据pid字段。 这是我用来重现的c#代码: 在某个时刻,断言被触发。我可以看到新的id具有与前一个相同的时间戳,但pid较低。 我本来以为使用{“_id”:1}进行排序将使用ObjectId的所有组件进行排序,而不仅仅是时间戳。 服务

  • 对于redis查询返回结果顺序的判断,我有些怀疑,特别是对于hgetall查询 例如,我将一些数据按其枚举的顺序放入数据库: 不带任何其他参数的“keys key:*”命令是否总是按照数据在数据库中出现的顺序返回该数据,还是会尝试以任何方式对数据进行排序?

  • 我有以下命名查询; 当我执行代码时; 我没有得到Person类型的resultList,即使我已经明确指定了命名查询的参数。相反,我得到的类型是包含对象数组的向量。 如何使查询显式返回“Person”类型?