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

手順

指定した文字列が最初に見つかった位置を取得するには、「LOCATE( )」を使用します。

LOCATE( 検索する,文字列,[検索開始位置] )

実際に、検索してみます。

SELECT 
LOCATE( 'c' ,'abcde'),
LOCATE( 'c' ,'abcdeabcde'),
LOCATE( 'cd' ,'abcde'),
LOCATE( 'cd' ,'abcdeabcde')

実行結果を確認すると、最初に見つかった位置が取得されていることが確認できます。

存在しないものを検索すると「0」が返ります。

SELECT 
LOCATE( 'f' ,'abcde')

実行結果

また、検索開始位置を指定することも可能です。

SELECT 
LOCATE( 'c', 'abcdeabcde', 1),
LOCATE( 'cd', 'abcdeabcde', 5)

実行結果

数値を指定

数値を指定して実行することもできます。

SELECT 
LOCATE( 321 , 54321 )

実行結果

サロゲートペア

サロゲートペア文字も、利用できます。

SELECT 
LOCATE( '😀🙍' , '😻😂😀🙍' )

実行結果