Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Mencari Nilai Berangka Terdekat dalam Pertanyaan Pangkalan Data?

Bagaimana untuk Mencari Nilai Berangka Terdekat dalam Pertanyaan Pangkalan Data?

Linda Hamilton
Lepaskan: 2025-01-02 18:10:37
asal
642 orang telah melayarinya

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

Mencari Nilai Berangka Terdekat dalam Pangkalan Data

Bayangkan situasi di mana anda memerlukan pertanyaan pangkalan data untuk mendapatkan rekod tepat yang sepadan dengan input anda atau , jika tiada padanan tepat, anggaran terdekat. Sebagai contoh, katakan anda memiliki data dengan medan 'Saiz' yang sepadan dengan nilai tertentu (cth., 2) dan medan 'Kawasan' yang mengandungi nilai berangka yang berbeza-beza.

Pertimbangkan pertanyaan berikut:

SELECT * FROM [myTable] 
WHERE Name = 'Test' AND Size = 2 AND PType = 'p' 
ORDER BY Area DESC
Salin selepas log masuk

Hasil yang dimaksudkan adalah untuk pertanyaan mengenal pasti rekod yang betul-betul sepadan dengan input anda ("Ujian" untuk medan 'Nama', 2 untuk medan 'Saiz' dan 'p' untuk medan 'PType'), mengutamakan medan 'Kawasan' dalam susunan menurun. Walau bagaimanapun, jika tiada padanan tepat wujud, anda berusaha untuk mendapatkan semula rekod yang nilai 'Kawasan'nya paling hampir dengan input anda.

Untuk mencapai ini, gunakan pertanyaan yang diubah suai berikut:

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

Pertanyaan yang disemak ini menggabungkan fungsi ABS(), yang mengira nilai mutlak perbezaan antara medan 'Kawasan' dan input yang anda tentukan. Klausa ORDER BY menyusun keputusan dalam tertib menaik berdasarkan nilai mutlak perbezaan, memastikan rekod dengan perbezaan terkecil (oleh itu nilai berangka yang paling hampir dengan input anda) diperoleh.

Atas ialah kandungan terperinci Bagaimana untuk Mencari Nilai Berangka Terdekat dalam Pertanyaan Pangkalan Data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan