2012-05-24 1 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 플러그인 스크립트입니다이다. 필자는 수동으로 정렬하는 것을 고려해 왔지만 많은 노력이 필요하며 파이썬 스크립팅에 익숙하지 않아 많은 시간과 연구가 필요합니다. (나는 SELECT 쿼리를 별도로 잡아서 큰 목록 [a, b, c]로 조합하여 생각하고있었습니다.)

그래서 어쨌든 질문은 다음과 같습니다. 도대체 내가 잘못 했으므로 개수가 올바르게 정렬되지 않았습니까?

답변

3

문자열의 절반은 다르게 정렬되는 문자열입니다. 문자열을 숫자로 변환하여 데이터를 스크럽하십시오.

+0

아. 그것이 문제였습니다. 나는 이틀 전에 SQL을 시작했는데 ^^; –

1

다른 유형의 데이터가있는 것이 문제입니다. 그는 NumCount 필드를보고 다른 일부는 아니지만 주변의 인용 부호를 봅니다. 모든 문자열을 숫자로 변경하면 문제가 해결 될 것입니다.

+0

감사합니다. Ignacio가 지적했듯이 데이터 유형이 일치하지 않았습니다. IRC 서버에 아웃 바운드 메시지를 출력하는 데만 사용 되었기 때문에 "높은 점수"기능을 구현하기 전에 문자열로 캐스팅 될 숫자를 설정했습니다. 감사! –

관련 문제