• ベストアンサー

並び替え

お願いします MySQLを使ってクエリーを書いているのですが 例えば[test]というフィールドがあったとして そのフィールドにa,b,cというデータが入っているとし データを取り出す場合 ORDER BY句を使ってaから取り出す方法とcから取り出す方法はわかるのですが bから取り出すことというのはできるのでしょうか? よろしくお願いします

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

これっていうのはいわゆる釣りの書き込みなんでしょうか。 真面目に回答を期待されているのか疑問ですが 一応まともに考えるなら、真中順とは3つしかデータがなければ 「2番目を最初して後は好きにしていい順」ですね? MySQLのバージョンにもよりますが例えばテンポラリを使って 2番目をとりだし、1番目を取り出し、3番目をとりだす という手順なのでしょうか・・・ create temporary table `y` select * from `x` limit 1,1; insert into `y` select * from `x` limit 0,1; insert into `y` select * from `x` limit 2,1; select * from `y`; 真中順てデータが4つ以上あるときどうするつもりでしょう・・・ b-c-a-d,c-a-d-b・・・なんでもあり? おそらく思いつきで命題をだしてらっしゃるのでしょうけど まずは真中順というアルゴリズムを確立してから ご質問になると、適正な回答が得られると思います。 子供が3人いて、背の真中順にならんでねぇ・・・ といって並べると思います? もしどうしてもというのであれば、とりだしたあとに PHPなどで情報を整理してみせることも検討なさって ください

SAY_MAN
質問者

お礼

>これっていうのはいわゆる釣りの書き込みなんでしょうか。 >真面目に回答を期待されているのか疑問ですが いたって真面目だったのですが^^; どうも質問がおかしかったようですね・・・ SELECT test FROM table WHERE test = 'b' と SELECT test FROM table WHERE test <> 'b' を一まとめする感じで bから取り出して残りを取り出すという方法が ないものかと思ったのですが諦めます こんな質問に真面目に答えてくださってありがとうございます。 PHPで制御することにしました。 あと、決して釣りでもなければ思いつきでもありません^^;

その他の回答 (2)

  • mitoneko
  • ベストアンサー率58% (469/798)
回答No.3

 この質問では、どういった順番でソートしたいのかがちんぷんかんぷんなんですが・・・  ソートする限りは、ソートする基準を「数式」でちゃんと説明できる必要があります。  数式で説明できるなら、手はあります。  あなたが望む順番を返すユーザー関数を作成して、そのユーザー関数でソートすればよいでしょう。  ORDER BY func(test) といった形で。  ユーザー関数に関しては、まず自分で調べてください。これ基礎から書いたら、一冊の本になります=^・・;=

SAY_MAN
質問者

お礼

>この質問では、どういった順番でソートしたいのかがちんぷんかんぷんなんですが・・・ すいません。質問が悪かったようです ユーザー関数については調べてみることにします ありがとうございました。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

おっしゃる意味がよくわからないのですが それは何順でとりだすというのでしょうか? 正直いってbからとりだす必要性を感じません。

SAY_MAN
質問者

補足

説明がわかりにくくてすいません >それは何順でとりだすというのでしょうか? 何順かといわれると・・・真中順?^^; データを取得するときに b,a,cかb,c,aどちらでもいいのですが bから取り出したいのです >正直いってbからとりだす必要性を感じません。 aから先に表示 bから先に表示 cから先に表示という機能を考えています そこでbから先に表示というのがわからなくて 質問させていただきました

関連するQ&A