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 19 Jahre, 3 Monate von sYnchron
gepostet vor 19 Jahre, 3 Monate von BLUESCREEN
(...) WHERE `bla` IN ('$dein_wert_minus_2','$dein_wert_plus_2')
gepostet vor 19 Jahre, 3 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 19 Jahre, 3 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 19 Jahre, 3 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 19 Jahre, 3 Monate von HSINC
mysql::between ist dein freund
gepostet vor 19 Jahre, 3 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 19 Jahre, 3 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 19 Jahre, 3 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 19 Jahre, 3 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 19 Jahre, 3 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 19 Jahre, 3 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 19 Jahre, 3 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