MySQL 文字列のリストから文字列を検索して位置を取得する

MySQL 文字列のリストから文字列を検索して位置を取得する

MySQLで、文字列のリストから文字列を検索して位置を取得する手順を記述してます。

環境

  • OS ubuntu21.10
  • MySQL Ver 8.0.27-0ubuntu0.21.10.1 for Linux on x86_64 ((Ubuntu))
  • MySQL Workbench 8.0.27

手順

文字列のリストから文字列を検索して位置を取得するには、「FIELD( )」を使用します。

FIELD( 検索文字列,文字列,文字列,文字列... )

実際に、実行して取得してみます。

SELECT
FIELD('abc', 'abc', 'efg', 'abc', 'abc', 'efg'),
FIELD('efg', 'abc', 'efg', 'abc', 'abc', 'efg'),
FIELD('ab', 'abc', 'efg', 'abc', 'abc', 'efg')

実行結果を確認すると、指定した値の位置が取得されていることが確認できます。
値がなければ「0」が返ります。

数値を指定

数値を指定しても取得されます。

SELECT 
FIELD(1, 1, 2, 3, 4),
FIELD(2, 1, 2, 3, 4),
FIELD(3, 1, 2, 3, 4),
FIELD(4, 1, 2, 3, 4)

実行結果

サロゲートペア

サロゲートペア文字も利用可能です。

SELECT 
FIELD('😀', '😀', '😅', '😆', '😇'),
FIELD('😅', '😀', '😅', '😆', '😇')

実行結果