MySQL,FIELD()関数でリストから文字列の位置を取得する

スポンサーリンク

鍛錬 955

MySQL,FIELD()関数でリストから文字列の位置を取得する

FIELD()関数を使用すると、文字列リストに指定した文字列が存在する場合、リスト内での位置を取得することができます。
 
使用方法は、以下に示す通りです。

SELECT 文を使用して、文字列リストにおける指定した文字列の位置を取得する場合

引数 str に調べる文字列を指定し、str1, str2, ・・・ に文字列リストの要素を指定します。

SELECT FIELD(‘str’, ‘str1’, ‘str2’, ・・・);
  • str が存在しない場合は 0 が返されます。
  • str に NULL を指定した場合は 0 が返されます。
スポンサーリンク

実行結果

以下は、文字列リストにおける指定した文字列の位置を取得しています。

今回は、次の文字列リストについて確認しています。

位置 文字列
1 ABC
2 DEF
3 GHI
mysql> 
mysql> select field('ABC', 'ABC', 'DEF', 'GHI');
+-----------------------------------+
| field('ABC', 'ABC', 'DEF', 'GHI') |
+-----------------------------------+
|                                 1 |
+-----------------------------------+
1 row in set (0.00 sec)

mysql> 
mysql> 
mysql> select field('DEF', 'ABC', 'DEF', 'GHI');
+-----------------------------------+
| field('DEF', 'ABC', 'DEF', 'GHI') |
+-----------------------------------+
|                                 2 |
+-----------------------------------+
1 row in set (0.00 sec)

mysql> 
mysql> 
mysql> select field('GHI', 'ABC', 'DEF', 'GHI');
+-----------------------------------+
| field('GHI', 'ABC', 'DEF', 'GHI') |
+-----------------------------------+
|                                 3 |
+-----------------------------------+
1 row in set (0.00 sec)

mysql> 
mysql> select field('NNN', 'ABC', 'DEF', 'GHI');
+-----------------------------------+
| field('NNN', 'ABC', 'DEF', 'GHI') |
+-----------------------------------+
|                                 0 |
+-----------------------------------+
1 row in set (0.00 sec)

mysql> 
mysql> 
mysql> select field(NULL, 'ABC', 'DEF', 'GHI');
+----------------------------------+
| field(NULL, 'ABC', 'DEF', 'GHI') |
+----------------------------------+
|                                0 |
+----------------------------------+
1 row in set (0.00 sec)

 
上記に示した通り、文字列リストにおける指定した文字列の位置を取得することができました。

タイトルとURLをコピーしました