2009-07-30 12 views
0

私はthis postを見ましたが、これが同じ問題であるかどうかはわかりませんでした。次のクエリでSQLソート状態を維持しますか?

私のデータベースは各列でソートすることができます。 dbがソートされると、次のクエリの後にその順序をどのように維持するのですか?例えば

:年齢別
注文デシベル:
のsprintf(SQL、 "* CUSTOMER_TABLE ORDER BY age_IDのLIMITから100%のオフセットを選択;"、オフセット);

ユーザーは

のsprintf(;、オフセットSQL、 "100%sのをOFFSET CUSTOMER_TABLEのLIMITから選択*")次の100人の顧客を見て。 // next offset

返されるデータは、年齢順に並べ替えられません。次の問合せで最後のソートをどのように保ちますか?

状態を維持するために変数を渡す必要がありますか、またはデータベースに最後の状態をリコールする機能がありますか?

答えて

2

一時テーブルにレコードを選択する以外に、そのテーブルから選択する場合は、各クエリでORDER BYを指定する必要があります。サーバーは、以前のクエリに関していかなる種類の状態も保持しません。後続のクエリでORDER BY句を再指定するのはなぜですか?

テンポラリテーブルを使用するか、クエリ全体を再指定するかは、アプリケーションがどのように構造化されているかによって決まります。

+0

したがって、一時テーブルは常にその順序を維持する最後のクエリで満たされます。次のクエリはその一時テーブルにあり、テーブルはそのクエリなどで置き換えられます。このテーブルを作成する方法は何ですか?それは問題ではありませんが、顧客が期待しているところから、再び並べ替える必要があるのは「愚か」でしょう。余分なクリック。ユーザーは品質を求めていますが、速くなければならない、またはサイトを離れる必要があります。 –

+1

一時的なテーブルは注文を保証しません。テンポラリテーブルをクエリするときは、ORDER BYを指定する必要があります。 @ Tommy:一時テーブルの作成はRDBMSによって異なりますので、ご使用のプラットフォーム固有のものになります。 –

+0

okありがとうShannon –

2

各リクエストでORDER BY句を指定する必要があります。

データベースシステムによって最適化される方法は、クライアントコードには関係ありません。

1

SQLデータベースは並べ替えを保証しません。選択呼び出しごとに指定する必要があります。

+0

はい、誰かが最後の並べ替えを維持する創造的な方法を持っているかどうかを見て、私はそれを見ています。 –

2

データベースエンジンによって生成された結果セットは、実行されるとすぐに忘れてしまいます。データベースを照会するたびに、ソート順を指定する必要があります。

関連する問題