2017-08-28 3 views
0

私はユーザのエントリ記述を含むカラムを持っていますが、これらの記述は何でも構いませんが、論理的な順序にソートする必要はありません。SQLiteは数値またはテキストを含む列を並べ替えます

テキストは、私は、SQL文の中でこれらを注文すると、テキスト項目は細かい返す 16〜26ヶ月のようなもの 40〜60ヶ月 リテラシー 数学

することができます。番号を持つすべての始まりは が 8〜20ヶ月

前になります

16〜26ヶ月、つまり

論理的ではないために戻ってくる、それは最初の文字などが、ドン」を取るしかし、私は理由を理解しますT Iは、数字を数値にキャストすると細かい文字で始まる項目が間違っ

を行くテキスト

で始まるエントリをめちゃくちゃにすることなく、パフォーマンスを向上させるために(sqliteのを使用して)SQL文を変更する方法を知っています10

ありがとう

答えて

0

"自然順序"で値をソートする必要があります。これを実現するには、自分でcollating sequenceを実装する必要があります。 SQLiteはこのケースには対応していません。

ここでこのトピックに関するいくつかの質問(および回答)がありますが、それは他のRDBMS用です。あなたのテーブルスキーマ、電子の改善について考える必要があります

http://wiki.ozanh.com/doku.php?id=python:database:sqlite:how_to_natural_sort

:私はクイック検索で見つけることができる最高は、このでした。 g。テキストを使用する代わりにピリオドを別の整数列(monthsMin、monthsMax)に分割すると、並べ替えがはるかに簡単になります。必要に応じて、この値からいつでも文字列を作成できます。

関連する問題