Heim >Datenbank >MySQL-Tutorial >Wie finde ich mithilfe von SQL die nächste numerische Übereinstimmung in einer Datenbanktabelle?

Wie finde ich mithilfe von SQL die nächste numerische Übereinstimmung in einer Datenbanktabelle?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2025-01-05 05:46:43139Durchsuche

How to Find the Closest Numerical Match in a Database Table Using SQL?

Den nächsten numerischen Wert in einer Datenbanktabelle finden

Die vorliegende Aufgabe besteht darin, den Datensatz abzurufen, der einem angegebenen numerischen Wert am ehesten entspricht aus einer Datenbank. Die SQL-Datenbank ruft Datensätze auf der Grundlage exakter Übereinstimmungen mehrerer Kriterien ab, es fehlt jedoch die Fähigkeit, die nächste Übereinstimmung zu identifizieren, wenn keine exakte Übereinstimmung vorliegt.

Um dieser Herausforderung zu begegnen, können wir den folgenden Ansatz verwenden:

Berechnung der Entfernung

Wir beginnen mit der Berechnung der absoluten Differenz zwischen dem Zielwert und das Feld „Bereich“ in jedem Datenbankeintrag. Der absolute Wert stellt sicher, dass der Abstand immer positiv ist, was einen einfachen Vergleich ermöglicht.

Reihenfolge der Ergebnisse

Als nächstes ordnen wir die Datensätze in aufsteigender Reihenfolge basierend auf den berechneten Werten Distanz. Durch diese Anordnung werden die Datensätze mit dem kleinsten Abstand oder den engsten Übereinstimmungen am Anfang des Ergebnissatzes platziert.

Abrufen der Top-Übereinstimmung

Schließlich verwenden wir die TOP 1-Klausel zum Abrufen des Datensatzes mit dem kleinsten Abstand, der die größte Übereinstimmung mit dem Zielwert darstellt.

Aktualisiertes SQL Abfrage

Hier ist die aktualisierte SQL-Abfrage, die den oben genannten Ansatz beinhaltet:

SELECT TOP 1 *
FROM [myTable]
WHERE Name = 'Test' AND Size = 2 AND PType = 'p'
ORDER BY ABS(Area - @input)

Diese Abfrage gibt den Datensatz mit dem „Bereich“-Wert zurück, der dem angegebenen Eingabewert @input am nächsten kommt .

Das obige ist der detaillierte Inhalt vonWie finde ich mithilfe von SQL die nächste numerische Übereinstimmung in einer Datenbanktabelle?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn