4 Stimmen

Bestellung nach größter Zahl

Ich habe eine ganz einfache Frage, glaube ich

Ich habe ein Datenbankfeld, in dem die Bytegröße von Dateien gespeichert wird. Ich möchte nach der größten Dateigröße sortieren, aber es funktioniert nicht so, wie ich gehofft hatte...

Ich habe versucht

SELECT * 
FROM file_data
ORDER BY file_size DESC

y

SELECT * 
FROM file_data
ORDER BY MAX( file_size ) DESC

Danke.

EDIT:

Der Grund, warum es nicht wie erwartet funktioniert, ist, dass dies die Ergebnisse der ersten Abfrage sind:

ID    file_size
13    980616    
200    9782897  
199    9732752  
187    967006   
166    9614688  
12    9481028   
44    945120    
65    9228440   
208    92140357

6voto

Fabrizio Calderan Punkte 115096

Si file_size ein CHAR/VARCHAR-Feld ist, ist das Ergebnis wahrscheinlich nicht das, was Sie erwartet haben (Bearbeiten: zur Unterstützung meiner These scheint die von Ihnen gepostete Ergebnismenge alphabetisch sortiert zu sein)

Versuchen Sie also, den Datentyp der Spalte in INTEGER zu ändern, oder, wenn Sie die Tabelle nicht ändern können, machen Sie ein explizites Casting in Ihrer Abfrage mit

SELECT * 
FROM file_data
ORDER BY CAST(file_size AS INTEGER) DESC

véase http://dev.mysql.com/doc/refman/5.0/en/cast-functions.html

3voto

John Woo Punkte 249233

CAST o CONVERT sollte Ihr Problem lösen

SELECT * 
FROM file_data
ORDER BY CONVERT(file_size,INTEGER) DESC

0voto

iamnonso Punkte 97

Ihr erster Code sollte funktionieren. Versuchen Sie, den Datentyp der Spalte in INTEGER zu ändern, oder führen Sie ein explizites Casting in Ihrer Abfrage durch.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X