MySQL関数チートシート

MySQLとは

MySQLはC、C++で書かれた特にPHPなどと相性の良いオープンソースなリレーショナルデータベース管理システムのこと

文字列系

LENGTH

文字列の長さ(バイト単位)の数値を取得

SELECT LENGTH('こんにちは');

CHAR_LENGTH

文字列の長さ(文字単位)の数値を取得

SELECT CHAR_LENGTH('こんにちは');

LEFT, RIGHT

左(右)から指定した文字数分の文字列を取得

SELECT LEFT('こんにちは', 4);

SUBSTRING

指定した位置から指定した文字数分の文字列を取得

SELECT SUBSTRING('こんにちは', 2, 4);

SUBSTRING_INDEX

指定した文字から指定した文字数分の文字列を取得

SELECT SUBSTRING_INDEX('こんにちは', 'んに', -2);

TRIM

文字列の先頭や末尾に空白がある場合に取り除いた文字列を取得

SELECT TRIM('   こんにちは   ');

CONCAT

複数の文字列を連結した文字列を取得 (文字列結合)

SELECT CONCAT('Hello ', 'World');

LOWER, UPPER

複数の文字列を連結した文字列を取得

SELECT LOWER('Hello World');

ASCII

文字列の1文字目のASCIIコードを取得

SELECT ASCII('ABC');

REPEAT

指定した文字列を指定した回数繰り返した文字列を取得

SELECT REPEAT('Hey ', 3);

SPACE

指定した長さ分半角スペースを取得

SELECT SPACE(3);

LPAD, RPAD

指定した文字列が指定の長さ分、指定の文字を使って左(右)詰めした文字列を取得

SELECT LPAD('Hello', 10, '@');

REPLACE

指定した文字列の中に含まれる文字を新しい文字に置き換えた文字列を取得

SELECT REPLACE('Hello World', 'World', 'Japan');

INSERT

指定した文字列の中に含まれる文字の指定した長さの分、新しい文字に置き換えた文字列を取得

SELECT INSERT('Hello World', 7, 5, 'Japan');

数値系

FORMAT

指定した数値を3桁毎にカンマ区切りした文字列を取得

SELECT FORMAT(123456789, 0);

ABS

指定した数値を絶対値にした数値を取得

SELECT ABS(-100);

CEILING

指定した数値以上の最小の整数を取得

SELECT CEILING(5.5);

FLOOR

指定した数値以下の最大の整数を取得

SELECT FLOOR(5.5);

ROUND

指定した数値を四捨五入した数値を取得

SELECT ROUND(5.5, 0);

TRUNCATE

指定した数値を切り捨てした数値を取得

SELECT TRUNCATE(5.5, 0);

MOD

指定した数値を切り捨てした数値を取得

SELECT MOD(10, 3);

日付・時刻系

CURDATE

現在の日付をyyyy-MM-ddまたはyyyyMMdd形式で取得

SELECT CURDATE();

CURTIME

現在の時刻をhh:mm:ssまたはhhmmss形式で取得

SELECT CURTIME();

NOW

現在の日付と時刻をyyyy-MM-dd hh:mm:ssまたはyyyyMMddhhmmss形式で取得

SELECT NOW();

DAYNAME

指定した日付の曜日の文字列を取得

SELECT DAYNAME(NOW());

DATE_FORMAT

指定した日時を指定したフォーマットに整形した文字列を取得

SELECT DATE_FORMAT(NOW(), '%Y %M');

その他

CAST

指定した値を別のデータ型に変換した値を取得

SELECT CAST(100 AS CHAR);

CONVERT

指定した値を別のデータ型に変換した値を取得

SELECT CONVERT('100', SIGNED);

AVG

指定したカラムの数値の平均値を取得

SELECT AVG(カラム名) FROM テーブル名 GROUP BY カラム名;

SUM

指定したカラムの数値の合計を取得

SELECT SUM(カラム名) FROM テーブル名 GROUP BY カラム名;

MAX, MIN

指定したカラムの数値の最大値(最小値)を取得

SELECT MAX(カラム名) FROM テーブル名 GROUP BY カラム名;

COUNT

指定したカラムの行数を取得

SELECT COUNT(カラム名) FROM テーブル名;