- ベストアンサー
並び替え
お願いします MySQLを使ってクエリーを書いているのですが 例えば[test]というフィールドがあったとして そのフィールドにa,b,cというデータが入っているとし データを取り出す場合 ORDER BY句を使ってaから取り出す方法とcから取り出す方法はわかるのですが bから取り出すことというのはできるのでしょうか? よろしくお願いします
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
これっていうのはいわゆる釣りの書き込みなんでしょうか。 真面目に回答を期待されているのか疑問ですが 一応まともに考えるなら、真中順とは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などで情報を整理してみせることも検討なさって ください
その他の回答 (2)
- mitoneko
- ベストアンサー率58% (469/798)
この質問では、どういった順番でソートしたいのかがちんぷんかんぷんなんですが・・・ ソートする限りは、ソートする基準を「数式」でちゃんと説明できる必要があります。 数式で説明できるなら、手はあります。 あなたが望む順番を返すユーザー関数を作成して、そのユーザー関数でソートすればよいでしょう。 ORDER BY func(test) といった形で。 ユーザー関数に関しては、まず自分で調べてください。これ基礎から書いたら、一冊の本になります=^・・;=
お礼
>この質問では、どういった順番でソートしたいのかがちんぷんかんぷんなんですが・・・ すいません。質問が悪かったようです ユーザー関数については調べてみることにします ありがとうございました。
- yambejp
- ベストアンサー率51% (3827/7415)
おっしゃる意味がよくわからないのですが それは何順でとりだすというのでしょうか? 正直いってbからとりだす必要性を感じません。
補足
説明がわかりにくくてすいません >それは何順でとりだすというのでしょうか? 何順かといわれると・・・真中順?^^; データを取得するときに b,a,cかb,c,aどちらでもいいのですが bから取り出したいのです >正直いってbからとりだす必要性を感じません。 aから先に表示 bから先に表示 cから先に表示という機能を考えています そこでbから先に表示というのがわからなくて 質問させていただきました
お礼
>これっていうのはいわゆる釣りの書き込みなんでしょうか。 >真面目に回答を期待されているのか疑問ですが いたって真面目だったのですが^^; どうも質問がおかしかったようですね・・・ SELECT test FROM table WHERE test = 'b' と SELECT test FROM table WHERE test <> 'b' を一まとめする感じで bから取り出して残りを取り出すという方法が ないものかと思ったのですが諦めます こんな質問に真面目に答えてくださってありがとうございます。 PHPで制御することにしました。 あと、決して釣りでもなければ思いつきでもありません^^;