Web Tech Log by 1KB

Icon

Web開発、Webデザイン、SEO、携帯コンテンツなどWebにまつわるテクノロジーを追っかけるブログ。旧名「Web屋に復帰した人間のリハビリ日記」

Oracle、Sunを買収

ちょっとびっくりしたんですが、IBMが買収交渉してたような。いつの間にIBMと破談したのだろう。でOracleが買ってしまった。個人的に気になるのはSun傘下のMySQLの動向ですね。

MySQLで昇順ソートする時、NULL を最後に持ってくる

はまったのでメモ。
某Webアプリを「スパゲッティPHPスクリプト+SQLite」から「CakePHP+MySQL」の環境に移植作業をしてました。ある情報を一覧表示したときの並び順が、移植元のアプリと違うのでorder句にあれこれ試してみてもうまくいきません。

しょうがないのでGoogle先生に聞いてみた。どうやら、DBMSによってNULLの値が上に来たり下に来たりするとのこと。昇順ソートの場合、SQLiteでは下に来て、MySQL上に来るらしい。こいつが原因だ(つーか常識?)。

上記エントリーを参考にしました。いつもありがとうございます。
答えとしてはorder by 句に ‘IS NULL ‘を追加でOK。具体的なSQL例文は以下のとおり

SELECT * FROM HOGETABLE ORDER BY priority IS NULL, priority;

CakePHP風には

$order = array('Model.priority IS NULL','Model.priority');
$alldata = $this->Model->findAllByFlag('1', null, $order);

こんな感じでしょうか。

固定ページ

킹ēǂ݂uOp[c