2009-03-21 17 views
7

私はSQLliteにデータベースを持っていて、テーブルをアルファベット順にソートしたいと思います。どうしたらいいですか? SQLiteのみを使用してエントリをソートする方法はありますか?まず、テーブルを配列に読み込んでソートし、その後データベースに書き込む必要がありますか?SQLite - テーブルの並べ替え

私のクエリは次のとおりです: "SELECT entry FROM table WHERE id =?" 一度に1つのエントリだけを取得するには、このステートメントを使用してテーブルからデータを取得する必要があります。

ありがとうございます。 Ilya。

答えて

13
'Select name from table order by name asc' 

「asc」はアルファベット順に表示されますが、逆に「desc」は逆アルファベット順に表示されます。

編集:一般的なルールとして、データベースに並べ替えをさせる必要があります。以下の記事は関連しており、間違いなくほとんど同じです。あなたはそれが役に立つかもしれません:

PHP/SQL: ORDER BY or sort($array)?

+0

ありがとうございます。 しかし、ソート後にどのように新しいIDを各行に割り当てることができますか?その変更は私のテーブルに表示されます。 ID = 0のエントリを取得したい場合は、Aから始まる単語を私に与えます。 –

+0

@Ilya:IDキーは行番号ではありません。彼らはユニークである必要がありますが、彼らはどんな順序でも(連続していなくても)ありません。 'name'カラムに基づいてソートし、ID値をその行を参照する方法としてのみ使用します。 –

+0

最初の(アルファベットの)エントリに最低のID番号が割り当てられるように、データをアルファベット順に並べ替えることを意味しますか?新しいテーブルに挿入して、古いテーブルを削除することができます。 SELECT名 INTOテーブル2 FROMテーブルの名前の昇順asc – karim79

0

あなたは大文字と小文字を区別せずに、または特定のロケール(英語ではない)でテーブルをソートしたい場合は、あなたのsqliteに照合を追加する必要があります。 Hereはそれを行う方法の例です。

2

また、SQLデータベーステーブル内のデータの順序、またはorder by句を含まないクエリを使用して取得される順序は定義されていないことも強調しておきます。

実際には、order byのないテーブルをまっすぐに読み取ると、固定された順序でデータが取得され、しばしば挿入の順序になります。しかし、これに頼るのは常にですが、驚くほど多く見られますがエラーです。

関連する問題