mysql:14538
From: "Akikazu Takenaka" <"Akikazu Takenaka" <a.p.takenaka@xxxxxxxxxx>>
Date: Thu, 15 May 2008 19:16:50 +0900
Subject: [mysql 14538] PHPの usort() のようなことをしたい
神奈川の竹中と申します。 お世話になります。 下記の環境を利用しております。 OS: CentOS 4.5 PHP: 4.3.9 MySQL: 4.1.20 テーブルの内容を、設定した順番でソートしたいと考えております。 表題のとおり、PHPの usort() と同じようなことです。 下記のようなテーブルを仮定します。 (必要な部分だけ抽出しています) CREATE TABLE `example` ( `cat_1st` VARCHAR(10) NOT NULL DEFAULT 'NO', `cat_2nd` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 cat_1st には、1文字のアルファベットか 'NO' のいずれかが入り、 cat_2nd には、1〜2桁の数値が入ります。 ここで、 cat_1st をキーとしてソートしたいのですが、 単純に ASC や DESC でソートするのではなく、 特定の順番で並べたいと考えています。 例: 'P' → 'A' → 'N' → 'C' → ... → 'NO' このようなソートを、MySQLだけで実現できるのでしょうか? 上記のように並べたいのは、 cat_1st のそれぞれの値の重要性や、 使用頻度などによるものです。 ただ、このソートは必須ではなく、「あまり手をかけずにできれば」という程度なので、 このためにカラムを1つ(重要性などを表す数値など)増やす、 などは考えておりません。 もし何か有用な方法をご存知の方がいらっしゃいましたら、 ご教授頂ければ幸いです。 もちろん、「PHPでやるほうが速い」などのアドバイスでも構いません。 以上、恐縮ですが、よろしくお願い致します。 -- 竹中 彰一 (Akikazu Takenaka) a.p.takenaka@xxxxxxxxxx ------------------------------------------------------------ equal1 http://www.equal1.net/
-> 14538 2008-05-15 19:16 ["Akikazu Takenaka" <] PHPの usort() のようなことをしたい 14539 2008-05-15 19:40 ┣[HIRATSUKA Sadao <hir] 14540 2008-05-15 20:03 ┣[chuuken kenkou <ken_] 14542 2008-05-15 23:18 ┗["F.Y" <fumi_sby@xxxx] 14547 2008-05-16 10:46 ┗["Akikazu Takenaka" <]