正か負かにかかわらず、提供された値のペアに最も近いエントリを選択したい DB テーブルがあります。
指定された値:
num1 = 2.5, num2 = 10.2
に比べ:
[0] num1 = 1.1, num2 = 11.0
[1] num1 = 2.5, num2 = 14.1
[2] num1 = 2.4, num2 = 10.5
[3] num1 = 3.2, num2 = 10.3
私が探しているクエリは行 [2] を返します。より近い値がいくつかありますが、最も近いペアは [2] です。
これをSQL selectステートメントで処理したいと思います。ここに私が持っているものがありますが、両方の数値のペアを比較するのに十分ではありません.
(SELECT * FROM table WHERE num1 < 2.5 ORDER BY num1 DESC LIMIT 1)
UNION ALL
(SELECT * FROM table WHERE num1 >= 2.5 ORDER BY num1 LIMIT 1)
UNION ALL
(SELECT * FROM table WHERE num2 < 10.2 ORDER BY num2 DESC LIMIT 1)
UNION ALL
(SELECT * FROM table WHERE num2 >= 10.2 ORDER BY num2 LIMIT 1)
これにより、4 つの近い一致が得られますが、最も近い一致は 1 つではありません。私の構文には何かが欠けていると確信していますが、最も近い単一の一致を返すためのトリックが見つかりません。
すべてのアイデアに感謝します。