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 )
実行結果

-
前の記事
GitHub Desktop 使用しているフォルダを開く 2021.12.25
-
次の記事
MySQL 列の合計値を取得する 2021.12.25
コメントを書く