データの並び替えについての質問です。
題名,内容,番号
ああ,いい,1
かか,きき,2
ささ,しし,11
たた,ちち,99
このようなデータベースで、"99,1,2,11"と並び替えを行いたいのですが、
このようなことはどのようにすれば出来るのでしょうか。
"99,11,2,1"と並び替えをして、PHPなどの配列に投入して"99,1,2,11"と並び替えることは出来ますが、limitで100と指定している為、99と11で100件近くあった場合重要な1と2が抽出されなくなってしまいます。
何か言い方法があればご教授いただければと思いますので、よろしくお願い致します。
答え:
ソートするためのカラムを別に持つ・・とか、ソート用の別テーブルを持つ・・というのは駄目なんでしょうか。
単に99だけを先に取得し、残りはソートして出すというのであれば、SQLを2回発行してプログラム内で組み合わせるのが、一番早いかと思われます。(2回目に呼び出す行数は、100 − 1回目の取得行数 で設定できます)
補足の質問:
ご教授ありがとうございます。やはりSQL一文指定ではできないという事ですね。
構造自体を変えてしまうか、二重に処理を行うかと言う結論を受け止めます。
また何かあればよろしくお願いします。この質問・回答は役に立ちましたか?
答え:
下記の回答は、第三フィールドでは負の数値は存在しないということが条件ですが、、、
1.数値99をすべて負の定数に置換する。
2.第三フィールドをキーに昇順ソートをかける。
3.負の定数をすべて99に置換する。
他は答える:
単純に、昇順ソートして、最後のデータを、最初に移動するだけ・・・・・と、違う?
ウェブサイトのユーザーによる情報ポスト、JPQA.comのない保証の正しさ.