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の時刻と比較して何日経ってるかを表示してくれる。
注意事項
- 自分用の覚書です。
- 自分が後から読んで理解できる程度にはしょったりまとめたりしています。
- 後で誤りに気付いた時は随時訂正しています。
- 「ドットインストール」で勉強したのでそれらをなぞっています。