首页  >  文章  >  数据库  >  如何根据 WHERE IN 子句中的顺序对行进行排序?

如何根据 WHERE IN 子句中的顺序对行进行排序?

DDD
DDD原创
2024-10-27 12:40:03294浏览

How to Order Rows Based on the Order in a WHERE IN Clause?

使用 ORDER BY FIELD 根据 WHERE IN 子句对行进行排序

在数据库查询中,WHERE IN 子句允许您根据以下条件过滤数据指定的值列表。但是,默认情况下,返回的行可能与子句中指定的顺序不同。

要根据 WHERE IN 子句中提供的顺序对行进行排序,可以使用 ORDER BY FIELD( ) 功能。此函数采用两个参数:

  • 要对行进行排序的字段(在本例中为 id 字段)
  • 来自 WHERE IN 的逗号分隔值列表子句

例如,给定以下查询:

SELECT *
FROM table
WHERE id IN (118, 17, 113, 23, 72);

按 ID 升序返回行,您可以使用 ORDER BY FIELD() 函数来获取按照 WHERE IN 子句中指定的顺序排列行:

SELECT *
FROM table
WHERE id IN (118, 17, 113, 23, 72)
ORDER BY FIELD(id, 118, 17, 113, 23, 72)

在此查询中,ORDER BY FIELD() 函数按 id 字段对行进行排序,但具体顺序为 118, 17, 113 、23 和 72,如 WHERE IN 子句中指定的。

使用此技术,您可以轻松地根据 WHERE IN 子句中指定的顺序对行进行排序,确保它们以所需的顺序返回。

以上是如何根据 WHERE IN 子句中的顺序对行进行排序?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn