prüfen ob wert in spalte passt

conym18

Member
hallo zusammen,

ich habe folgende tabelle:

groesse:
id|mimp(VARCHAR)|mxmp(VARCHAR)
0|0.1|0.4
1|0.5|1.6
2|1.7|4.6

nun habe ich einen wert von 0.8, welcher in die ID 0 und 1 fällt.

wie muß aber die mysql abfrage sein?

folgendes geht nicht

Code:
SELECT * FROM groesse WHERE mxmp<='0.8'

hier erhalte ich nur die ID 1 zurück, warum aber nicht 0?
 
Das ist wie ob A größer B ist und was kommt da raus?

Warum du keine Gleitkommazahl aufnehmen kannst versteh ich nicht :eek:

Mal ganz davon abgesehen das 1.6 <= 0.8 sowieso false ergeben würde und von daher nur ID 0 angezeigt werden dürfte.
 
ok ich versuchs mal einfacher :)

wenn ich z.B. 0.8 habe, dann fällt das in die zeile 0 und 1
wenn ich z.B. 1.7 habe, dann fällt es in 0, 1 und 2
 


du sprichst doch Zeile mxmp an und das ist die hintere wo höhere Werte drin stehen aber wie gesagt es ist ein verdammter STRING

Machs als Float Double oder sonst irgendein Gleitkommazahlenfeld!
 
vielleicht an einem anderen beispiel, anhand von IP adressen:

id|ipvon|ipbis
0|1|10
1|11|19
2|20|29

wenn ich jetzt die IP 13 habe, dann bekomme ich zeile 1,
wenn ich jetzt die IP 9 habe, dann bekomme ich zeile 0,
wenn ich jetzt die IP 29 habe, dann bekomme ich zeile 29

jedoch alles mit kommazahlen mit PUNKT als trenner !
 
Sry ich versteh immer noch nicht dein Problem. Was willst du als Ergebnis und WARUM soll das Ergebnis erscheinen und welche Abfrage verwendet du dafür?!
 
nochmal anders:

wassereimer:

id | litermin | litermax
0 | 0.1 | 0.9
1 | 1.0 | 1.9
2 | 2.0 | 2.9
3 | 3.0 | 3.9

wenn ich jetzt also einen wassereimer mit 1.2 Liter habe, dann passt es in den wertebereich 1.0 - 1.9 rein, also nimm zeile (id) 1

wenn ich jetzt einen wassereimer mit 3.9 liter habe, dann passt es in den wertebereich 3.0 - 3.9 rein, also nimm zeile (id) 3
 
Du willst dein Datenbankschema reparieren und für Fließkommawerte auch tatsächlich eine Spalte mit einem Fließkommadatentyp (bei ANSI SQL FLOAT, siehe auch 10.2. Numeric Types in MySQL) verwenden. Dann klappt das auch mit den numerischen Vergleichen. :rolleyes:
 
Sorry aber alleine schon dein SQL Statement ist doch totaler Schwachsinn wenn du zwei Werte vergleichen willst aber im Endeffekt nur einen vergleichst.
Du musst auch schon beide Spalten ansprechen und dann beide Abfragen ob das Statement zutrifft und über ein AND verbinden.

Desweiteren solltest du jetzt verdammt nochmal einen Float nehmen denn sonst kannst du es nicht vergleichen. Ein String mit dem Wert 1.9 ist noch lange keine 1,9 im Dezimalsystem!
 
Back
Top