MYSQL のメモ (order by)

引き続き、MySQL 関連
今回はデータのソート
ORDER BY を使うことで並び替えができます
昇順、つまり小さい順で並べるなら
select * from my_items ORDER BY id ASC
これでIDの数値の小さい順に並べれます
逆に降順にするなら
select * from my_items ORDER BY id DESC
ちなみに where と組み合わせもできます
SELECT * FROM `my_items` where price <=180 order by price;
とすると
180円以下が昇順(小さい順)で表示されます

に応用として 159Pに
ランキング情報の作り方が載っていました
150Pでカラム追加を行い、内容を UPDATE を使って追加します
カラムは rank
種類は INT
としました
あとは
update my_items set rank=2 where id=2;
というように、値を追加していきます
rank 情報を更新したら
select * from my_items ORDER BY rank ASC;
でランキング表示できます
ただし、この方法では面倒になるため、一度 rank 情報を削除します
(売上が変わると、毎回ランキング更新は面倒なので)
削除するには
ALTER TABLE `my_items` DROP `rank`
で削除します
DROP で削除できますが、中身のデータも一緒に消えるうえ、復元できないようですので
注意
次に、カラム sales を追加して
update my_items set sales=20 where id=2;
というように値を入力
SELECT * FROM my_items ORDER BY sales DESC;
で検索すれば、売上ランキングができます
DBの設定をするときには、なるべく絶対情報を記録して
ランキングなどを行うようにします
絶対情報は、ランキングのように他のものに左右されないものです
ランキングは相対情報なので、どんどん変化してしまいます
とりあえず、今日はここまでとして
明日は
DATETIME と TIMESTAMP あたりをすすめてみます

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です