Ich will eine Abfrage starten, bei der ich nur bestimmte Werte haben will. Das komplizierte daran ist, ich habe einen Wert und will alle werte haben die entweder um 2 größer oder 2 kleiner sind. nur irgendwie bekomm ich keinen Query hin, indem ich diesen bereich festlegen kan :/
danke für antworten
MfG
Query mit Wertebereich
gepostet vor 18 Jahre, 10 Monate von sYnchron
gepostet vor 18 Jahre, 10 Monate von BLUESCREEN
(...) WHERE `bla` IN ('$dein_wert_minus_2','$dein_wert_plus_2')
gepostet vor 18 Jahre, 10 Monate von sYnchron
mit der X Koordinate geht das Prima, aber ich will auchnoch den Y diesen bedingung zuweisen, und dann bekomm ich nichts raus....jedenfalls nur welche, die genau den selben wert haben (logisch )
gepostet vor 18 Jahre, 10 Monate von neit
mal so versucht?
select * from tabelle where x > ($x_wert - 2) and x < ($x_wert + 2) and y > ($y_wert - 2) and y < ($y_wert + 2)
select * from tabelle where x > ($x_wert - 2) and x < ($x_wert + 2) and y > ($y_wert - 2) and y < ($y_wert + 2)
gepostet vor 18 Jahre, 10 Monate von sYnchron
habe ich bereits probiert, ist jedoch nichts passiert....da die bedingung ja sich selbst wiederspricht *G*
Mit Bluescreens Methode bekomme ich folgendes ergebniss:
48 28
48 32
Das Verwunderliche ist das ich eine koordinate habe ich 50:30 ist und nicht (!) angezeigt wird, obwohl 50 und 30 ja dazwischen liegt
Mit Bluescreens Methode bekomme ich folgendes ergebniss:
SELECT * FROM koordinaten WHERE x IN ('48', '52') AND y IN ( '28', '32')
48 28
48 32
Das Verwunderliche ist das ich eine koordinate habe ich 50:30 ist und nicht (!) angezeigt wird, obwohl 50 und 30 ja dazwischen liegt
gepostet vor 18 Jahre, 10 Monate von HSINC
mysql::between ist dein freund
gepostet vor 18 Jahre, 10 Monate von sYnchron
joar hier wieder das selbe bei x klappt es und bei y nichtmehr...jeweils 1 between / IN bedingung klappt 1a aber 2 nicht
edit nun gehts
danke BETWEEN ist echt mein freund^^
edit nun gehts
danke BETWEEN ist echt mein freund^^
gepostet vor 18 Jahre, 10 Monate von BLUESCREEN
Du hast in deinem Anfangspost weder gesagt, dass der Wert zwischen var-2 und var+2 liegen soll, noch, dass du zwei Spalten hast...
gepostet vor 18 Jahre, 10 Monate von KoMtuR
also für mich steht im ersten posting eindeutig: werte, welche im wertebereich x +/- 2 liegen sollen angezeigt werden. später ergänzt er dies noch mit der y-koord. ...
gepostet vor 18 Jahre, 10 Monate von schokofreak
Original von neit
select * from tabelle where x > ($x_wert - 2) and x < ($x_wert + 2) and y > ($y_wert - 2) and y < ($y_wert + 2)
Dies geht so, und wird auch so gemacht. Und wenn du das so nicht hinkriegst leigts entweder an deinen Daten oder daran, dass du das Query nicht korrekt abgetippt / eingetippt hast.
gepostet vor 18 Jahre, 10 Monate von BuschnicK
select * from `tabelle` where abs( `x` - `x_wert`) <= 2 and abs( `y` - `y_wert`) <= 2
oder
select * from `tabelle` where greater( abs( `x` - `x_wert`), abs( `y` - `y_wert`)) <= 2
letzteres müsste der Chebyshev Norm bzw Distanz entsprechen, wobei ich mir da auswendig auch nicht sicher bin.
mfG,
Sören
gepostet vor 18 Jahre, 10 Monate von schokofreak
Wieso so kompliziert und nicht mit <=, >= arbeiten alla Neit?
Nur weil Neits lösung n Index nutzt und eure ned?
Gruss
Nur weil Neits lösung n Index nutzt und eure ned?
Gruss
gepostet vor 18 Jahre, 10 Monate von BuschnicK
Ehrlich gesagt finde ich meine Lösung einfacher, weil alle Variablen nur genau einmal vorkommen. Generell bevorzuge ich Lösungen mit min/max bzw lesser/greater den Alternativen if else Geschichten. Wie auch immer, ich wollt's nur in die Liste der Möglichkeiten einreihen - wähle er was ihm am meisten zusagt ;-)
mfG,
Sören
mfG,
Sören