mysql, Select Abfrage varchar als Integer behandeln
bearbeitet von
Hallo Anna,
> WHERE spalte>=1021 ....
> da die Spalte aber keine integer ist geht es nicht.
Was genau geht nicht? Hast Du das ausprobiert? In MYSQL sollte das nämlich gehen. Denn MYSQL teilt die Vorliebe von PHP zu wilden, ungefragten Typkonvertierungen.
Wenn die führenden Nullen Teil deiner Werte sind (Postleit"zahlen" zum Beispiel), ist ein String auch der richtige Typ.
Aber für die Abfrage gibt's zwei Alternativen, die einem Standard-SQL näher kommen:
(1) Typgerecht vergleichen
~~~sql
SELECT spalte FROM table WHERE spalte >= '01021'
~~~
(2) Spalte für den WHERE in Zahl konvertieren
~~~sql
SELECT spalte FROM table WHERE CAST(spalte as UNSIGNED) >= 1021
~~~
"Unsigned"?! Ja, in der Tat. "INTEGER" versteht er nicht. Braucht er auch nicht. Weil er das eigentlich automatisch und ohne CAST tut.
_Rolf_
--
sumpsi - posui - obstruxi