SQL道場 文字列関数 FIELD関数

数値を指定した進数の文字列に変換するFIELD関数について記載しています。

対応データベースMySQL

FIELD関数の文法

SELECT FIELD(探す文字列,文字列1 |,文字列2・・・|) FROM テーブル
引数探す文字列文字列型
文字列1文字列型
文字列2文字列型
返値整数型 何番目に見つかったか。

FIELD関数は指定された複数の文字列の中から文字列を探し何番目に見つかったを返します。見つからない場合は0(ゼロ)を返します。FIELD関数の逆の機能を持つ関数としてELT関数があります。

実行例

MySQLの実行例

探す文字列「peach」が何番目にあるかを返します。

/* 数値を指定した進数の文字列に変換するサンプル */
SELECT FIELD('Peach','Apple','Peach','Grape');
FIELD関数サンプル実行結果

特殊な並び順にする場合にFIELD関数を利用する

以下の資格テーブルがあった場合、資格カラムの危険物,情報処理,無資格順にソート(並べ替え)したい場合に、FIELD関数を利用します。

資格テーブル

ID氏名年齢性別資格
1すなりん 太郎35危険物
2博多 ぴーち20情報処理
3田中 工事3危険物
4佐々木 花子40情報処理
5佐藤 じゅん23無資格
6佐々木 ゆん2無資格
/* 特殊な並び順にする場合にFIELD関数を利用する */
SELECT 
	id
	,EMP_NAME as '氏名'
	,EMP_AGE as '年齢'
	,EMP_SEX as '性別'
	,EMP_LICENSE '資格'
FROM testdb.MST_EMPLOYEE
ORDER BY FIELD(資格,'危険物','情報処理','無資格')
;
FIELD関数サンプル実行結果