ガードブロッキング的ブログ

mysqlのメモ5

mysqlのメモ5

関数

length

長さを表示

select length(email),name from usres;

emailの文字の長さ順に名前をソート

select * from users order by length(email);

なども可能。

replace

置換をしながらレコードを表示
実データが置換されるのではなく、一時的に表示を変えるもの。
データの受け渡し時に使えるとか。
現時点ではよくわからない。

select replace(email,'foo.com','hobe.net'),name from users;

変換されたemailとnameを表示している。

substring

select substring(email,3),name from users;

emailの3文字目から表示しろという命令。
ここでのカウントは0からではなく1から。
また-での指定もでき、-3の場合は後ろから3文字表示となる。

さらに

substring(email,3,2)

で3文字目から2文字表示といった指定もできる。

数学関数

ceil//    小数点切り上げ
floor//    小数点切り下げ
round//    四捨五入

select ceil(weight),name from users;

rand//乱数を発生させる

select rand();

ただ乱数を表示。

select rand(),name from users order by rand();

乱数を発生させ、名前と一緒に昇順にソートして表示。
既存のレコードをただランダムに並べ替えて表示するときは単純に

select name from users order by rand();

でもいい。

日付関数

now
month
datediff

select now();

現時刻を表示

select month(joined),name from users;
select datediff(now(),joined),name from users;

現時刻とjoinedの時刻と比較して何日経ってるかを表示してくれる。

注意事項

モバイルバージョンを終了