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

在mysql中的select语句“ in”子句中按值顺序排序

孔才
2023-03-14
问题内容

我正在从具有整数id值的大型表(数百万行)中选择一组帐户记录。从某种意义上说,查询是最基本的。我正在做的是建立一个大型的逗号分隔列表,并将其作为“
in”子句传递到查询中。现在,结果是完全无序的。我想做的是按“ in”子句中的值顺序返回结果。

我想我将不得不建立一个临时表并进行联接,这是我想避免的,但可能无法做到。

有什么想法吗?现在,由于我们正试图限制输出大小,每个查询的大小上限为60k,但是它可能任意大,从实际的角度来看,这可能会排除“
in”查询,如果不是这样的话。物理的。

提前致谢。


问题答案:

实际上,这样更好:

SELECT * FROM your_table
WHERE id IN (5,2,6,8,12,1)
ORDER BY FIELD(id,5,2,6,8,12,1);

这是FIELD文档:

http://dev.mysql.com/doc/refman/5.0/zh-CN/string-
functions.html#function_field



 类似资料:
  • 问题内容: 我想知道是否有按IN()子句中的值顺序进行排序的方法(可能是一种更好的方法)。 问题是我有2个查询,一个查询获取所有ID,第二个查询获取所有信息。第一个创建我要第二个排序的ID的顺序。这些ID以正确的顺序放入IN()子句中。 因此,它类似于(极其简化): 问题在于第二个查询不会以将ID放入IN()子句中的顺序来返回结果。 我发现的一种解决方案是将所有ID放入具有自动递增字段的临时表中,

  • 问题内容: 我想知道是否有按IN()子句中的值顺序进行排序的方法(可能是一种更好的方法)。 问题是我有2个查询,一个查询获取所有ID,第二个查询获取所有信息。第一个创建我要第二个排序的ID的顺序。这些ID以正确的顺序放入IN()子句中。 因此,它类似于(极其简化): 问题在于第二个查询不会以将ID放入IN()子句中的顺序来返回结果。 我发现的一种解决方案是将所有ID放入具有自动递增字段的临时表中,

  • 我想使用instr函数按照in子句中值的顺序对查询结果进行排序。 映射器 XML 当ids集合为[1,2,3]时,mybatis生成的sql为: 在如下所示更改用于测试的xml之后,不会发生异常。

  • 本文向大家介绍MySQL中select语句使用order按行排序,包括了MySQL中select语句使用order按行排序的使用技巧和注意事项,需要的朋友参考一下 本文介绍MySQL数据库中执行select查询语句,并对查询的结果使用order by 子句进行排序。 再来回顾一下SQL语句中的select语句的语法: Select 语句的基本语法: Select <列的集合> from <表名>

  • 问题内容: 是否可以保留“ IN”条件子句的顺序? 我在SO上发现了这个问题,但在他的示例中,OP已经有一个排序的“ IN”子句。 我的情况不同,’IN’子句的顺序是随机的: 我想按(45,2,445,12,789)顺序检索结果。我正在使用Oracle数据库。也许SQL中有一个属性,我可以将其与条件子句一起使用以指定保持子句的顺序。 问题答案: 除非您使用ORDER BY子句..否则不会有可靠的排

  • 问题内容: 在WHERE子句中有使用SELECT语句描述的名称吗?这是好/不好的做法吗? 这会是更好的选择吗? 它远没有那么优雅,但是运行起来比以前的版本要快。我不喜欢它,因为它在GUI中没有非常清晰地显示(并且SQL初学者需要理解它)。我可以将其分为两个独立的查询,但是随后事情变得混乱了…… 注意:我不仅需要日期和分数(例如姓名) 问题答案: 称为相关子查询。它有它的用途。