2016-05-16 25 views
0

Ich möchte den größten Wert aus einer Spalte namens Betrag, ich habe versucht, mit der MAX in der Abfrage, aber es hat nicht die größte.Holen Sie den größten Wert aus Spalte

SQL Query:

SELECT MAX(amount) FROM games; 

Mein Tisch (Amount Spalte):

+--------+ 
| amount | 
+--------+ 
| 10  | 
| 100 | 
| 1  | 
| 50  | 
| 954 | 
| 5  | 
| 1000 | 
| 90000 | 
| 7  | 
| 10  | 
+--------+ 

Ausgang:

+-------------+ 
| MAX(amount) | 
+-------------+ 
| 954   | 
+-------------+ 

Gibt es einen Grund, warum es nicht der größte Wert möglich bekommen ?

+6

Ist der Datentyp der Spalte 'Amount' numerisch? –

+1

Ich denke "Nein". – Strawberry

+0

Ah, wahrscheinlich sollte das überprüft werden. Ich habe die db nicht gemacht, also habe ich einfach angenommen. – bwfcwalshy

Antwort

4

Wie in den Kommentaren gesagt, ist der Typ wahrscheinlich nicht richtig.

Um zu sehen, ob es das Problem ist, können Sie direkt mysql konvertieren:

SELECT MAX(CONVERT(amount, SIGNED)) FROM games; 
+0

Das ist richtig, danke @Denis Leger, stört es mir zu sagen, was die Konvertierung (Betrag, signiert) genau tut? – bwfcwalshy

+1

konvertieren zu einer signierten Nummer, ich denke, Sie können Google hier verwenden. – strangeqargo

+0

Sie haben alle Details hier: http://dev.mysql.com/doc/refman/5.7/en/cast-functions.html#function_convert –

0

es wegen des Feldtypen in der Datenbank ist. Wenn der Typ der Spalte ein numerischer Typ wie int oder etc ist, funktioniert die MAX-Funktion gut, andernfalls verwenden Sie andere Lösungen.

Verwandte Themen