FIELD
説明
値のリスト <param> [, ...] における <expr> の最初の出現位置を返します。
<expr> が見つからない場合、関数は 0 を返します。この関数は ORDER BY でカスタムソートを実装するために一般的に使用されます。
構文
FIELD(<expr>, <param> [, ...])
パラメータ
| パラメータ | 説明 |
|---|---|
<expr> | パラメータのリスト内で検索される値。 |
<param> | <expr>と比較される値のシーケンス。 |
戻り値
<param>値のリスト内での<expr>の位置(1ベースのインデックス)を返します。<expr>が見つからない場合、0を返します。<expr>がNULLの場合、0を返します。
例
SELECT FIELD(2, 3, 1, 2, 5);
+----------------------+
| FIELD(2, 3, 1, 2, 5) |
+----------------------+
| 3 |
+----------------------+
SELECT k1, k7 FROM baseall WHERE k1 IN (1,2,3) ORDER BY FIELD(k1, 2, 1, 3);
+------+------------+
| k1 | k7 |
+------+------------+
| 2 | wangyu14 |
| 1 | wangjing04 |
| 3 | yuanyuan06 |
+------+------------+
SELECT class_name FROM class_test ORDER BY FIELD(class_name, 'Suzi', 'Ben', 'Henry');
+------------+
| class_name |
+------------+
| Suzi |
| Suzi |
| Ben |
| Ben |
| Henry |
| Henry |
+------------+