【MySQL】文字列から指定した文字数を返すLEFT()・RIGHT()関数の使い方
MySQLでは、LEFT()関数とRIGHT()関数を使うことで、文字列から指定した文字数だけを取り出して返すことができます。LEFT()は文字列の左側(先頭)から、RIGHT()は右側(末尾)から文字を抽出する関数です。
LEFT()関数:左側から指定した文字数を返す
LEFT()関数は、文字列の先頭(左側)から指定した文字数を返します。
構文
LEFT(str, length)
strには対象となる文字列を指定し、lengthには返したい文字数を整数値で指定します。
使用例
mysql> Select LEFT('My Name is Ram', 7);
+---------------------------+
| LEFT('My Name is Ram', 7) |
+---------------------------+
| My Name |
+---------------------------+
1 row in set (0.00 sec)この例では、文字列「My Name is Ram」の先頭から7文字分である「My Name」が返されています。
RIGHT()関数:右側から指定した文字数を返す
RIGHT()関数は、文字列の末尾(右側)から指定した文字数を返します。
構文
RIGHT(str, length)
使い方はLEFT()関数と同じで、strに対象の文字列、lengthに返したい文字数を整数値で指定します。
使用例
mysql> Select RIGHT('My name is Ram',6);
+---------------------------+
| RIGHT('My name is Ram',6) |
+---------------------------+
| is Ram |
+---------------------------+
1 row in set (0.00 sec)この例では、文字列「My name is Ram」の末尾から6文字分である「is Ram」が返されます。
補足:マルチバイト文字の扱い
LEFT()およびRIGHT()関数は、バイト数ではなく「文字数」を基準に動作します。そのため、日本語などのマルチバイト文字が含まれる文字列でも、文字セット(utf8mb4など)に応じて正しく文字単位で抽出できます。ただし、接続の文字セット設定によって結果が変わる場合があるため、日本語データを扱う際は文字セットの設定に注意しましょう。
-
【MySQL】CAST関数を使って文字列を数値として並べ替える方法
文字列を数値としてソートするには? データベースでは、数値がVARCHAR型などの文字列として保存されているケースは少なくありません。このままORDER BYで並べ替えると、辞書順(文字列順)にソートされてしまい、「3, 20, 34」のような期待通りの数値順にならないことがあります。 この問題を解決するには、CAST()関数を使って文字列を数値に変換してからソートします。基本構文は以下のとおりです。 SELECT * FROM テーブル名 ORDER BY CAST(カラム名 AS SIGNED) DESC; サンプルテーブルの作成 まず、動作確認用のテーブルを作成しましょう。ここではIdカ
-
MySQLで16進数文字列を数値に変換する方法
MySQLのCONV()関数を使って16進数文字列を10進数の数値へ変換するMySQLでは、CONV()関数を使用することで、16進数の文字列を簡単に10進数の数値へ変換できます。基本的な構文は以下の通りです。SELECT CONV(カラム名, 16, 10) AS エイリアス名 FROM テーブル名;CONV()関数は第1引数に変換対象の値、第2引数に元の基数(ここでは16進数なので16)、第3引数に変換後の基数(10進数なので10)を指定します。サンプルテーブルの作成まず、動作確認用のテーブルを作成しましょう。mysql> CREATE TABLE DemoTable -> (