今回はSQLのCASTとSUBSTRING_INDEXについて解説します。

SUBSTRING_INDEXとは

文字列を区切り文字で分割して一部を取り出す関数です。

基本形は下記になります。

SUBSTRING_INDEX(文字列, 区切り文字, 数値)

「数値」の意味が分からないはずなのでサンプルコードで考えます。

サンプルコード

SELECT SUBSTRING_INDEX("20-29", "-", 1);

文字列「20-29」を「-」で区切ります。

「1」は正の数か負の数が入ります。

1(正)の時は1つ目の「-」よりも左の値を取得するという意味になります。

だから「SELECT SUBSTRING_INDEX(“20-29”, “-“, 1);」の結果は「20」です。

仮に「SELECT SUBSTRING_INDEX(“20-29-30-31”, “-“, 2);」なら2つ目の「-」よりも左の値を取得します。

結果は「20-29」になります。

正の数の時は区切り文字に対して左側の値を取得しますが負の数の時は区切り文字に対して右側の値を取得します。

だから「SELECT SUBSTRING_INDEX(“20-29-30-31”, “-“, -2);」なら「30-31」を取得します。

CASTとは

データ型を変換する関数です。

基本形は下記になります。

CAST(値 AS )

サンプルコードで考えます。

サンプルコード

下記のコードで考えます。

CAST("20" AS UNSIGNED)

「”20″」は文字列ですがUNSIGNED(数値)に変換します。