dolito: MySQL - Umwandlung von Datentypen

Beitrag lesen

Hallo Leutz,

sanfte Grüße aus dem sonnigen Osten :))

Ich habe mal wieder ein Problem mit meiner Fussballseite. Ich habe da schon ein paar mal Fragen müssen, als es noch ums Datenbank-design ging und ich gerade mit MySQL angefangen habe. Das ist jetzt so ca. 1 - 2 Jahre her.

Diesmal geht es um die Erstellung der Tabelle einer Staffel. Das ganze klappt recht gut - schon seit Juli 2005. Allerdings ist jetzt zum ersten mal ein besonderes Problem aufgetreten.

In der Datenbank-Abfrage für die Tabelle, werden ja die Tore der Heim-Manschaft mit denen der Gast-Mannschaft verglichen. Je nach Ergebniss werden dann die Punkte (Sieg = 3, Unentschieden = 1, Niederlage = 0) vergeben.

Jetzt zum eigentlichen Problem:

Da ich die Spalten mit den Toren nicht als Integer speichern kann* (, sondern als Varchar), werden die Tore auch als Zeichenkette verglichen. D.h. in meinem speziellen Fall, dass 10 kleiner als 2 ist.
Dadurch wird natürlich die Tabelle falsch berechnet.

*= weil bei spielen die noch ausstehen, die Tore auf '-' stehen und somit nicht berücksichtigt werden

In PHP könne ich das ja ganz leicht umwandeln, mit nem Cast-Operator (z.B. (int) ), aber das wäre viel zu viel Overhead, den ich zusätzlich aus der Datenbank auslesen müsste. Dann müsste ich extra Funktionen für die sortierung schreiben, und und und ...!

Ich hab auch schon probiert, die Tore mit 1 zu multiplizieren oder die Binärwerte zu vergleichen:

1*(heim_tore) < 1*(gast_tore)
           BIN(heim_tore) < BIN(gast_tore)

Das bringt aber auch nix! :(

Jetzt meine Frage:
Gibt es für MySQL auch eine Art Cast-operator??
Ich weiß, das ich Zahlen in Zeichenketten umwandeln kann, aber geht das auch umgekehrt?

Ich danke Euch schon mal für die Hilfe.

mfg dolito