mysql:4692
From: 豊島@クロスネット <豊島@クロスネット <toyoshima@xxxxxxxxxx>>
Date: Thu, 22 Nov 2001 19:44:03 +0900
Subject: [mysql 04692] Re: 指定した順番でのソート
豊島です。 From: "f.t" <fujiyama@xxxxxxxxxx> Subject: [mysql 04688] Re: 指定した順番でのソート Message-ID: <20011122184914.3C5D.FUJIYAMA@xxxxxxxxxx> > 豊島@クロスネット <toyoshima@xxxxxxxxxx> wrote(Thu, 22 Nov 2001 18:35: > 32 +0900): > > > > データが > > > 1->指定なし > > > 2->\100 > > > 3->\200 > > > 4->\300 > > > ... > > > となっている時に、結果を値段の安い順に並べたいのだが「指定なし」は一番最 > > > 後に表示したいというようなことです。(この場合2→3→4→1にソートする) > > > 「値段の安い順に並べたいのだが」とおっしゃっているのですから、 > > > > select id,名前,値段 from テーブル > > where id in (1,2,3,4) > > order by 値段 > > > > 「指定なし」については、値を"-1"として予約しておくとか。 > > (0は違う意味を持っている場合は、 where に 値段 != 0 を付加する。) > > id=1,2,3,4… > 値段=指定なし,\100,\200,\300… > ですよね? > 実は、書き方が不十分だったのですが、 > カラム「値段」には\100,\200といったきれいな値だけでなく全角の「¥200」 > や複数の値段「\200(休日は\150)」も入るvarcharデータなのです。なので値段 > カラムをソートに使うのは(ソート順の見当がつかないし)あきらめています。 > > また、SQL部分で負荷を加えたくないので、SQLを2回発行して、1回目はid > in(2,3,4)、2回目はid=1みたいなのも苦しいところです(実際はかなり長い&そ > の他の条件の多いSQLを使用しているので) > > # > 今回はシステムが毎秒動いているようなものでもないので、やっぱり、 > コード入力部分を修正(「指定なし」のidを99などの大きな数にする) > ↓ > 既に入っているコードid=1をid=99にupdate > ですかねぇ? > 移行の間はちゃんとしたソート順にならない(昔の「指定なし」は先頭に、新し > い「指定なし」は後方に)けどやむをえないところでしょうか。。 ん? それでは一つ疑問が残ります。 「値段」順にするということですが、実際の「値段」順にするロジックはどのように 行うのでしょうか? どこかで、結局「¥200」 や 「\300」 からかならず数値を 抽出しなければなり ません。 どうせ抽出しているのであれば、insert もしくは、update する直前に 値段文字列 から 値段数値 を抽出しておいて、その値段数値をorder by でソートして出力する方法 が考えられます。 ・・・‥‥‥……………………‥‥‥・・・ 株式会社 クロスネット IT事業部 豊島 博 E-Mail : toyoshima@xxxxxxxxxx WebSite : http://www.crossnet.co.jp ・・・‥‥‥……………………‥‥‥・・・
4683 2001-11-22 18:18 ["f.t" <fujiyama@xxxx] 指定した順番でのソート 4684 2001-11-22 18:35 ┣[豊島@クロスネット <] 4688 2001-11-22 19:12 ┃┗["f.t" <fujiyama@xxxx] 4690 2001-11-22 19:21 ┃ ┣[遠藤 俊裕 <endo_t@xx] 4693 2001-11-22 19:45 ┃ ┃┗["f.t" <fujiyama@xxxx] 4695 2001-11-22 21:45 ┃ ┃ ┗[遠藤 俊裕 <endo_t@xx] 4697 2001-11-22 22:56 ┃ ┃ ┗[Tomohiro 'Tomo-p' KA] 4698 2001-11-22 23:06 ┃ ┃ ┗[遠藤 俊裕 <endo_t@xx] -> 4692 2001-11-22 19:44 ┃ ┗[豊島@クロスネット <] 4694 2001-11-22 20:23 ┃ ┗["f.t" <fujiyama@xxxx] 4685 2001-11-22 18:56 ┣[Noriyuki Sakimura <s] 4686 2001-11-22 18:59 ┃┣[Noriyuki Sakimura <s] 4691 2001-11-22 19:39 ┃┗["f.t" <fujiyama@xxxx] 4689 2001-11-22 19:20 ┣["古河 謙悟" <furuka] 4696 2001-11-22 22:35 ┗[Hiroshi Takiguchi <t] 4709 2001-11-26 11:16 ┗["Takafumi oumine" <o] Bakup について 4712 2001-11-26 12:21 ┗["f.t" <fujiyama@xxxx] 4713 2001-11-26 13:28 ┗["Takafumi oumine" <o] 4715 2001-11-26 13:45 ┗[Hiroyuki Sato <hiro@] 4717 2001-11-26 16:09 ┗["Takafumi oumine" <o]