MySQLのTRIM()関数とは?文字列から接頭辞・接尾辞を削除する方法を解説
MySQLのTRIM()関数は、文字列から特定の接頭辞(プレフィックス)や接尾辞(サフィックス)、あるいはその両方を取り除くために使用される関数です。不要な記号や余分な文字を文字列の先頭・末尾から除去したい場合に非常に便利です。
TRIM()関数の動作は、以下の構文を見るとよく理解できます。
構文
TRIM([{BOTH | LEADING | TRAILING} [str_to_remove] FROM] string)各引数の意味は次のとおりです。
- BOTH:文字列の左側(先頭)と右側(末尾)の両方から指定した文字列を削除します。
- LEADING:先頭(左側)に付いている文字列のみを削除します。
- TRAILING:末尾(右側)に付いている文字列のみを削除します。
- str_to_remove:削除したい文字列を指定する引数です。省略した場合は半角スペースが削除対象になります。
- string:削除処理の対象となる元の文字列です。
使用例
実際にTRIM()関数を使ったSQL文と、その実行結果を見てみましょう。
BOTHで両端の文字を削除する
mysql> Select TRIM(BOTH '0' FROM '0100'); +----------------------------+ | TRIM(BOTH '0' FROM '0100') | +----------------------------+ | 1 | +----------------------------+ 1 row in set (0.00 sec)
この例では、文字列「0100」の両端にある「0」が削除され、「1」だけが残ります。
mysql> Select TRIM(BOTH '**' from '**tutorialspoint.com**'); +------------------------------------------------+ | TRIM(BOTH '**' from '**tutorialspoint.com**') | +------------------------------------------------+ | tutorialspoint.com | +------------------------------------------------+ 1 row in set (0.00 sec)
アスタリスク(**)で囲まれた文字列から、前後の「**」が両方とも削除されました。
TRAILINGで末尾の文字のみ削除する
mysql> Select TRIM(Trailing '**' from '**tutorialspoint.com**'); +----------------------------------------------------+ | TRIM(Trailing '**' from '**tutorialspoint.com**') | +----------------------------------------------------+ | **tutorialspoint.com | +----------------------------------------------------+ 1 row in set (0.00 sec)
TRAILINGを指定すると、末尾の「**」だけが削除され、先頭の「**」はそのまま残ります。
LEADINGで先頭の文字のみ削除する
mysql> Select TRIM(Leading '**' from '**tutorialspoint.com**'); +---------------------------------------------------+ | TRIM(Leading '**' from '**tutorialspoint.com**') | +---------------------------------------------------+ | tutorialspoint.com** | +---------------------------------------------------+ 1 row in set (0.00 sec)
LEADINGを指定すると、先頭の「**」だけが削除され、末尾の「**」はそのまま残ります。
まとめ
TRIM()関数を使いこなすことで、データベース内の文字列データから不要な記号や空白を柔軟に除去できます。特に、ユーザー入力データのクレンジングや、CSVデータの整形などの場面で役立ちます。削除位置に応じてBOTH・LEADING・TRAILINGを使い分けましょう。
-
MySQLのORDER BYで「カラム名 * 1」と書く目的とは?文字列型の数値を正しくソートする方法
ORDER BY カラム名 * 1 の目的MySQLでは、ORDER BY句でカラム名に「* 1」を掛けることで、そのカラムの値を数値へ暗黙的に型変換させることができます。たとえば、VARCHAR型のカラムに「301」「23」「345」といった数値のような文字列が格納されている場合、通常のORDER BYでは文字列として辞書順(文字コード順)にソートされてしまいます。しかし「* 1」を付けることで値が数値として評価され、数値の大小順に正しくソートできるようになります。基本の構文は以下のとおりです。SELECT * FROM テーブル名ORDER BY カラム名 * 1;実際に動作を確認してみよ
-
C/C++における関数プロトタイプの目的とは?役割と重要性を解説
この記事では、CやC++において関数プロトタイプ(関数原型宣言)を使用する目的について詳しく解説します。 関数プロトタイプとは 関数プロトタイプは、コンパイラに対して以下の情報を事前に伝えるための宣言です。 引数の個数 各パラメータに必要なデータ型 関数の戻り値の型 これらの情報をもとに、コンパイラは関数を呼び出す前にそのシグネチャ(関数の署名)を照合し、呼び出しが正しいかどうかをチェックできます。もし関数プロトタイプが宣言されていない場合、プログラムは警告付きでコンパイルされることがあり、最悪の場合には予期しない出力や不正な動作を引き起こすこともあります。 なぜ関数プロトタイプが必要なの