MariaDB 範囲を指定して文字列を抽出する

MariaDB 範囲を指定して文字列を抽出する

MariaDBで、範囲を指定して文字列を抽出する手順を記述してます。「SUBSTRING( )」に開始位置もしくは開始位置と文字数を指定することで可能です。

環境

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

手順

範囲を指定して文字列を抽出するには、「SUBSTRING( )」を使用します。

SUBSTRING( 文字列 , 開始位置, [文字数] )

実際に、「SUBSTRING( )」を使って抽出してみます。

SELECT 
SUBSTRING( 'あいうえお', 2 ),
SUBSTRING( 'あいうえお', 2, 2 ),
SUBSTRING( 'あいうえお', 2, 3 ) 

実行結果を確認すると、指定した範囲で文字数が抽出されていることが確認できます。

半角全角スペースも、1文字としてカウントされます。

SELECT 
SUBSTRING( 'あい う えお', 2 ),
SUBSTRING( 'あい う えお', 2, 3 ),
SUBSTRING( 'あい う えお', 2, 5 ) 

実行結果

「0」を指定すると空が返ります。

SELECT 
SUBSTRING( 'あい う えお', 0 ),
SUBSTRING( 'あい う えお', 2, 0 )

実行結果

マイナスを指定

マイナスを指定すると開始位置が後ろから取得されます。

SELECT 
SUBSTRING( 'あいうえお', -3 ),
SUBSTRING( 'あいうえお', -3, 2 )

実行結果

数値を指定

数値を指定して実行することもできますが、小数点を利用する場合は、カンマの1文字としてカウントされるので、取得する数と位置に注意が必要です。

SELECT 
SUBSTRING( 123456789, 3 ),
SUBSTRING( 11.11, 2, 3 ),
SUBSTRING( 11.11, 3, 3 )

実行結果

サロゲートペア

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

SELECT 
SUBSTRING( '😻😂😀🙍🙆', 3 ),
SUBSTRING( '😻😂😀🙍🙆', 2, 3 )

実行結果