2017-08-28 90 views
0

我有一列包含用戶條目描述,但這些描述可以是任何東西,但是我確實需要將它們排序爲邏輯順序。SQLite對包含數字或文本的列進行排序

文本可以像 16〜26個月 40〜60個月 素養 數學

當我訂購這些在SQL語句中的文本項返回細東西。然而,隨着數字的任意開始回來不符合邏輯

16〜26個月的訂單 會前 8〜20個月

我明白爲什麼,因爲它需要第一個字符等,但不要」知道如何改變SQL語句(使用SQLite),以提高不會弄亂項文本

開始表現當我轉換爲數字的數字是與精細文本開頭的項目出問題

謝謝

回答

0

你需要的是按「自然順序」對值進行排序。爲了達到這個目標,你需要實現你自己的collating sequence; SQLite不提供這種情況。

在這裏有關於這個主題的一些問題(和答案),但它們是針對其他RDBMS的。我能找到一個快速搜索最好的是這樣的:

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

你應該考慮提高你的表模式,即G。將句點拆分成單​​獨的整數列(monthsMin,monthsMax)而不是使用文本,這將使排序更容易。如有必要,您始終可以根據此值構建一個字符串。

相關問題