首頁  >  文章  >  資料庫  >  如何依照 WHERE IN 子句中的順序對行進行排序?

如何依照 WHERE IN 子句中的順序對行進行排序?

DDD
DDD原創
2024-10-27 12:40:03392瀏覽

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