Heim > Datenbank > MySQL-Tutorial > Wie finde ich den nächsten numerischen Wert in einer Datenbankabfrage?

Wie finde ich den nächsten numerischen Wert in einer Datenbankabfrage?

Linda Hamilton
Freigeben: 2025-01-02 18:10:37
Original
642 Leute haben es durchsucht

How to Find the Nearest Numerical Value in a Database Query?

Den nächstgelegenen numerischen Wert in einer Datenbank finden

Stellen Sie sich eine Situation vor, in der Sie eine Datenbankabfrage benötigen, um einen genauen Datensatz abzurufen, der Ihrer Eingabe entspricht oder , sofern keine exakte Übereinstimmung vorliegt, die größte Annäherung. Angenommen, Sie verfügen über Daten mit einem Feld „Größe“, das einem bestimmten Wert (z. B. 2) entspricht, und einem Feld „Fläche“, das verschiedene numerische Werte enthält.

Betrachten Sie die folgende Abfrage:

SELECT * FROM [myTable] 
WHERE Name = 'Test' AND Size = 2 AND PType = 'p' 
ORDER BY Area DESC
Nach dem Login kopieren

Das beabsichtigte Ergebnis besteht darin, dass die Abfrage einen Datensatz identifiziert, der genau Ihrer Eingabe entspricht („Test“ für das Feld „Name“, 2 für das Feld „Größe“ und „p“ für 'PType'-Feld), wobei das Feld 'Area' in absteigender Reihenfolge priorisiert wird. Wenn jedoch keine genaue Übereinstimmung besteht, versuchen Sie, den Datensatz abzurufen, dessen Flächenwert Ihrer Eingabe am nächsten kommt.

Um dies zu erreichen, verwenden Sie die folgende modifizierte Abfrage:

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

Diese überarbeitete Abfrage enthält die Funktion ABS(), die den absoluten Wert der Differenz zwischen dem Feld „Fläche“ und Ihrer angegebenen Eingabe berechnet. Die ORDER BY-Klausel ordnet die Ergebnisse in aufsteigender Reihenfolge basierend auf dem absoluten Wert der Differenz an und stellt so sicher, dass der Datensatz mit der kleinsten Differenz (und damit dem numerischen Wert, der Ihrer Eingabe am nächsten kommt) abgerufen wird.

Das obige ist der detaillierte Inhalt vonWie finde ich den nächsten numerischen Wert in einer Datenbankabfrage?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage