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

手順

カンマ区切りの文字列から指定した文字列の位置を取得するには、「FIND_IN_SET( )」を使用します。

FIND_IN_SET( 文字列,文字列,文字列,文字列... )

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

SELECT 
FIND_IN_SET('a','a,b,c,d'),
FIND_IN_SET('b','a,b,c,d'),
FIND_IN_SET('c','a,b,c,d')

実行結果を確認すると、指定した位置の値が取得されていることが確認できます。

存在しない値

数値を存在しない値を指定すると「0」が返ります。

SELECT 
FIND_IN_SET('e','a,b,c,d')

実行結果

サロゲートペア

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

SELECT 
FIND_IN_SET('😀','😅,😀,😆')

実行結果