DISTINCT+ORDER BY


 こういうことはできないということをようやく理解しました。DISTINCTの代わりにGROUP BYを使えば何とかなる様子。

SELECT DISTINCT c1,c2 FROM table ORDER BY c3;

 テーブルにもよりそうですが、たぶんエラー。

SELECT c1,c2 FROM table GROUP BY c1,c2 ORDER BY max(c3);

 これなら上の期待する結果が返る。max以外にも集計関数であれば問題なさそう。ここを普通にc3と書いてしまうと、「GROUP BYにc3がありません」というエラーになる。

 うーん、SQLについては分からないことが多すぎて何とも。テクニカルエンジニアのDBあたりを勉強すれば詳しくなれるだろうか。まだまだ使いこなすには時間かかりそう。

参考:http://okwave.jp/qa2828848.html

非常に単純なことなのかもしれないけど


 SQLでテーブルのデータを書き換えるにはUPDATEという構文があるけど、UPDATEを使わなくとも、一旦DELETEしてINSERTすれば同じなんじゃないか?コストはどう違うんだ?という疑問が浮かんだ。ほとんど1行まるまる書き換える場合だったら、DELETEしてINSERTする方がSQL文は短くてすむ気がする。本当はもっとうまいやり方があるのかもしれないけど。

 研究関係でDBをいじっててそんな疑問を持ちました。まあ実際実験して調べてみればいいのかもしれないけど、とりあえずいいかということで、UPDATE文を使って更新することにしました。そこを迷うよりも、早くモノを作らないとね。

今更ながらはてな記法が凄い書きやすい気がしてきた


 慣れれば凄く楽なのかもしれない。Wiki記法と同じなんだろうけど。

 普段やってるサイトのほうでこっちのような記法に変えたら、微妙に読みづらくなった気がした。やはりWeb上で文字を読むなら適度に改行したほうがいいのかな。でもはてなだとわりとこの書き方でも読みづらいとは感じないので、CSSの問題なのかもしれない。