MySQL 文字列を指定した範囲で抽出する

  • 作成日 2021.12.25
  • 更新日 2023.01.25
  • 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

手順

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

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

実際に、抽出してみます。

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

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

半角全角スペースもカウントされます。

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

実行結果

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

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

実行結果

マイナスを指定

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

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

実行結果

数値を指定

数値を指定して実行することもできますが、小数点を利用する場合は、取得する数と位置に注意が必要です。

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

実行結果

サロゲートペア

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

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

実行結果