現在、場所の表から選択しようとしています。結果は、最も近い場所であり、さらに少なくとも 30 km 離れた場所である必要があります。
だから私はやろうとしています
SELECT * FROM locations WHERE (distance = minimumdistance OR distance > 30) AND some other parameters LIMIT 2
しかし、ステートメントを非常に長くする他のすべてのパラメーターも含む2番目の選択なしでは、最小距離を取得できません。
MIN(距離) にはグループ化が必要ですが、その結果、2 つではなく 1 つの結果しか得られません...
これをもっと簡単に行う方法はありますか?ステートメント内で完全な WHERE 句を 2 回使用せずにステートメントを作成します。
現在は
SELECT * FROM locations WHERE (distance = (SELECT MIN(distance) FROM locations WHERE some other parameters ) OR distance > 30) AND some other parameters LIMIT 2
ここで、他のいくつかのパラメーターがかなり長い文字列であり、距離が静的なテーブル列ではなく計算であると想像してみてください。これはかなり厄介になります。