Mysql query vergleichen, string (varchar) as integer
Ich bin nicht sicher, ob es eine Funktion in mysql Abfrage. Ich habe eine Preis-Tabelle und die Spalte, die den Namen "Preis" und sein Typ ist VARCHAR(). Ich habe absichtlich gebraucht, es ist als VARCHAR für viele Grund.
Das problem ist jetzt, wenn ich wollen suchen Produkte zum maximalen Preis von z.B. 100000, aber in meiner Spalte haben wir verschiedene Arten von Preisen, z.B. unter:-
- TBD 374,500
- Verhandlung
- 299,000
Ich bin auf der Suche nach einer Funktion wie intVal (), die zuerst konvertieren Sie den Wert im Feld selbst zu INTEGER und zu vergleichen. Unten ist meine aktuelle Anweisung in der Abfrage:-
... UND Preis <= $maximum_price
kann so etwas sollte die Lösung sein : intVal(Preis -) <= $maximum_price
jede Hilfe oder Richtung Lösungen geschätzt wird. cheers
- Reinigen Sie die Preise in Ihrer Datenbank und speichern als ein numerischer Datentyp mit einer separaten flag " - Spalte zu identifizieren "Verhandelbar", etc
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen, diese...
String-Werte sind "0". andere Werte sind sortiert..
Vielleicht so etwas wie:
Aber ich Stimme mit den vorherigen Kommentar, Sie besser zu überdenken Sie Ihre Tabelle.
Ich denke, in PHP gibt es keine Funktion wie das. Sie haben zu codieren es sich für immer ein passendes Ergebnis.
so Aussehen, wie Sie verschiedene Formate in die Spalte Preis ein. Ich denke, dass Sie schauen, um zu vergleichen, ob Wert in der Spalte ist "TBD 374,500" dann vergleichen 374500 zu 100000
In diesem Fall einfache integer-casting-konvertiert alle Preise begann mit char 0. erstellen Sie Ihre eigene Funktion in mysql zu kümmern sich um alle Formate.