Query mit Annäherungswerten und mehreren Feldern

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Query mit Annäherungswerten und mehreren Feldern

    Ich habe folgende Tabellenstruktur:

    id | abstand | sichtfeld | vergrößerung | länge
    1 10 100 1000 10000
    2 20 200 2000 20000
    3 30 300 3000 30000
    4 40 400 4000 40000
    5 50 500 5000 50000

    Angenohmen ich suche jetzt nach Abstand = 15 (oder 11..19), dann soll die Zeile mit ID 1 und ID 2 ausgegeben werden.

    Und genau dies soll dann mit anderen Feldern noch kombiniert werden können:
    Abstand = 15 und sichtfeld = 250

    Ausgabe:
    ID 1, 2 und 3

    ID 1 und 2, da Abstand gleich 15 ist und so am nächsten zu 10 und 20.
    ID 2 und 3, da Sichtfeld gleich 250 ist und so am nächsten zu 200 und 300.

    Wie muss die SQL Anweisung dazu lauten?

    Extra: Da fällt mir gerade noch eine zusätzliche Aufgabe zu diesem Beispiel ein:
    Es wird nur genau die Schnittstelle ausgegeben, d.h. ID 2 wird zweimal gefunden, also ist dies das einzige Ergebnis.
    WIchtiger ist aber erst einmal das Obere.

  • #2
    PHP-Code:
    $sql='SELECT id FROM tab WHERE abstand BETWEEN '. (floor($abstand/10)*10) .' AND '. (ceil($abstand/10)*10) .''
    könnte passen ... mit den grösseren werten halt /100, *100
    Kissolino.com

    Kommentar


    • #3
      Da hab ich mich anscheinend noch nicht klar genug ausdrücken können. Das mit den ID als Suchergebnis war so nicht gemeint.

      Eigentlich will ich das ungefähr so haben:
      SELECT * FROM db WHERE abstand >= 15 ORDER BY abstand LIMIT 1
      SELECT * FROM db WHERE abstand <= 15 ORDER BY abstand DESC LIMIT 1

      Nur halt in einen einzigen Query und mit mehreren Feldern noch kombiniert.

      PS: Der Suchwert so wie die Werte in der Tabelle sind nicht bekannt.
      Zuletzt geändert von Marco Gutenhof; 26.03.2004, 00:10.

      Kommentar

      Lädt...
      X