MariaDB 文字列が最初に見つかった位置を返す

MariaDB 文字列が最初に見つかった位置を返す

MariaDBで、文字列が最初に見つかった位置を返す手順を記述してます。「LOCATE( )」に検索する文字列と検索したい文字列を指定することで可能です。ここでは、実際に実行した結果を画像で掲載してます。

環境

  • OS CentOS Stream release 9
  • MariaDB 10.10.2
  • phpMyAdmin 5.2.0

手順

文字列が最初に見つかった位置を返すには、「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 ),
LOCATE( 3.21 , 543.21 )

実行結果

サロゲートペア

サロゲートペア文字の場合は、正常に機能しませんでした。

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

実行結果