2012-05-24 92 views
0
conn = sqlite3.connect('Path_To_DB.db') 
c = conn.cursor() 
    c.execute('SELECT Nick,NumCount,TimesRun FROM databaseTable ORDER BY NumCount desc') 
    ordered = c.fetchall() 
    print ordered 

當然,這只是一個片段,但打印的「有序」不會顯示出來......好吧,有序。SQLite Python查詢:ORDER BY DESC不工作?

更確切地說,這是我的輸出

[(u'Coburn', u'52', 1), (u'radii', u'295', 1), (u'Senna_Wong', u'242', 1), (u'sinkingwork', u'17', 1), (u'Yumirose', u'164', 1), (u'yepperoni', u'154', 1), (u'Jeffrey-sama', 861, 2), (u'Kethsar', 414, 5), (u'sakeisgood', 331, 2), (u'lygerzero0zero', 269, 2), (u'asdfjjjjjj', 268, 5), (u'lunr', 253, 3), (u'asdfasf', 237, 2), (u'asdfsadjf', 130, 2), (u'Neibs', 107, 2)] 

這是一個XChat的IRC腳本插件,所以我需要提取數據庫值顯示一個「最高分」名單。我一直在考慮手動排序它,但這需要很多額外的努力,因爲我是python腳本編程的新手,還有很多時間和研究。 (我正在考慮分別抓取SELECT查詢,將它們組合在一個大列表[a,b,c]中並通過它進行排序。)

因此無論如何,問題是:我做錯了什麼,所以計數沒有正確排序?

回答

3

其中一半是字符串,其排序方式不同。清理數據,將字符串轉換爲數字。

+0

啊。這是問題。我前兩天開始使用SQL,以及^^; –

1

問題是你有不同類型的數據。看看他的NumCount字段,請看周圍的引號而不是別人?我想如果你把所有的字符串改成數字,你就能解決問題。

+0

謝謝,正如Ignacio指出的那樣,數據類型不一致。在我開始實現「高分」功能之前,我將該數字設置爲字符串,因爲它僅用於將出站消息輸出到IRC服務器。謝謝! –