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

按IN顺序排序MySQL结果?

翟志新
2023-03-14
问题内容

当我使用IN从表中选择一组行时,例如

SELECT x.y, x.z FROM x WHERE x.id IN (23, 55, 44, 12)

有一种SQL技巧可以按照IN集合中给定的顺序恢复它们吗?

因此,在示例中,假设x具有ID为23、55、44和12的行,则将按该顺序返回这四行。


问题答案:
SELECT x.y, x.z FROM x WHERE x.id IN (23, 55, 44, 12)
ORDER BY FIELD (x.id, 23, 55, 44, 12)


 类似资料:
  • 问题内容: 假设我使用where子句查询数据库 有什么办法可以按_id在列表中列出的顺序对返回的游标进行排序?_id属性在Cursor中从头到尾分别为5、6、424、2? 碰巧这是通过ContentProvider在Android上进行的,但这可能无关紧要。 问题答案: 使用子查询选择ID列表并加入它: UPD: 固定代码

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

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

  • 问题内容: 我将要有一个固定的项目清单,直到有一个随机化步骤,我才能运行查询直到执行该查询为止。 我想要以下内容: 假设is_launch_set将返回1,3,7,11,但已被随机分配到以下位置: 关于如何实现这一目标的任何想法?我在想也许是一个find_in_set,但不是很确定。 问题答案: 您可以使用以下任一方法来做到这一点: 要么 要么

  • 问题内容: 我正在从具有整数id值的大型表(数百万行)中选择一组帐户记录。从某种意义上说,查询是最基本的。我正在做的是建立一个大型的逗号分隔列表,并将其作为“ in”子句传递到查询中。现在,结果是完全无序的。我想做的是按“ in”子句中的值顺序返回结果。 我想我将不得不建立一个临时表并进行联接,这是我想避免的,但可能无法做到。 有什么想法吗?现在,由于我们正试图限制输出大小,每个查询的大小上限为6

  • 问题内容: 我在名为“ cards”的INNODB表中大约有20,000行,因此FULLTEXT不是一种选择。 请考虑以下表格: 因此,假设用户搜索“ John”,我希望结果集按以下顺序排列: 请注意,我们只拉过一次“约翰·史密斯”,我们接过他的最新条目。根据我的数据,所有名称均指同一个确切的人,而无需担心两个名为John Smith的家伙。有想法吗?让我知道是否可以澄清任何事情。 问题答案: 版