Mit MySQL eine VARCHAR Spalte behandeln als wäre sie INT

Gefragt von Ocelot, am Montag, 19. März 2012 um 15:16

Tags: MySQL
Vote up
+5
Vote down

Ich suche eine Möglichkeit, wie ich eine Spalte die zwar vom Typ VARCHAR ist so behandeln kann als wär sie INT.

Im konkreten Fall brauch ich das beim Sortieren, also im ORDER BY Statement. Ich hab da eine große Tabelle mit assoziierten variabeln Werten, wo im Normalfall Strings drinnen sind, aber in einem Spezialfall eben Zahlen nach denen ich numerisch sortieren will.

Antworten

Vote up
+3
Vote down
Akzeptiert

Hirschkuh am Montag, 19. März 2012 um 15:26

Ich denke was du suchst ist:

ORDER BY CAST(`spaltenname` AS DECIMAL(11)) DESC

Wenn möglich lagere aber eher die numerischen Werte in eine eigene Tabelle mit INT als Spaltentyp aus - Queries mit CAST sind sehr langsam. In einer Tabelle mit 45.000 Datensätzen braucht er bei mir 0,34 Sekunden (bei INT nur 0,007).

Schreib eine Antwort auf diese Frage:

Um diese Frage zu beantworten, logge dich bitte ein.