2016-11-28 5 views
0

インデックスを作成していない列やプライマリキーで注文されたデータを汎用クエリが返すようにテーブルを変更することはできますか?私は、テーブルまたは現在のキーのいずれかの整合性を損なうことなく列別の自動注文(非プライマリキー)

SELECT * from <table> 

SELECT * from <table> ORDER BY <misc_col> 

と同じ順序付けを持っていると思います。

create view v_table as 
    select t.* 
    from t 
    order by col; 

多くのデータベースのいずれか、そのようなorder byを無視するかの構文を使用できません。これを行うには

+2

SQLテーブルと結果セットは、*順序付けられていない*セットを表します。適切な順序で結果を出すためには、「ORDER BY」を追加してください。それがこれを行う唯一の安全な方法です。 –

+0

基本を重視してくれてありがとう。私は、問題は、私のテーブル構造を再定義することによってのみ解決することができると思う(またはビューを作成する) – Anna

答えて

0

一つの方法は、viewを使用することです。しかし、MySQLは、ビューからの構文と選択を許可して、望む順序で結果を返す必要があります。

注:t(col)のインデックスは、パフォーマンスを向上させるはずです。

+1

それは自分の順序でビューを呼び出すことに注意する必要があります。 – xQbert

関連する問題