SQL 表示順を指定

WEBページで選択された複数の商品IDを選択された順に並べてAjaxで送信、
サーバー側でデータを取得してWEB側に返す。という処理を作成していました。
以前に似たような画面を作成したときは、SQLでデータ取得後にforeachで並び替えるという若干違和感のある方法を取っていました。
ただ改めて作成することとなり、SQL単体で並び替える方法がないかと調べると案外あっさりと見つかりました。

実際の方法

SELECT
    items.item_id,
    items.item_item_name
FROM
    items
WHERE
    items.item_id IN (1, 5, 16, 7, 2)
ORDER BY
    FIELD(items.item_id, 1, 5, 16, 7, 2)

出てくるもの

item_iditem_name
1カメラ
5パソコン
16イヤホン
7充電器
2ケーブル

WHEREで指定しないとORDER BYで指定されていない[item_id]が出力された。
この指定されていない[item_id]の出力される順番がどのような規則性をもって並べられたのかがわからなかったです。
FIELD()を使用する際はWHEREなどと併用するのが基本かと思います。
ちなみにDESCを入れるとちゃんと指定した[item_id]とは逆に並んでくれました。
ORDER BYは昇順降順だけかと思っていたのですが、探せばほかにもいろいろありそうです。