入力日時の5行前を選択するクエリがあります。
入力日時がテーブルの最も早い日付に近い場合、5つの結果が得られず、4、3、2、1、またはまったく得られない場合があります。
テーブル内のランダムな場所から残りの欠落している結果(最初のクエリで3つの結果が得られたので、さらに2つ必要)を選択するように指示する方法はありますか?
入力日時の5行前を選択するクエリがあります。
入力日時がテーブルの最も早い日付に近い場合、5つの結果が得られず、4、3、2、1、またはまったく得られない場合があります。
テーブル内のランダムな場所から残りの欠落している結果(最初のクエリで3つの結果が得られたので、さらに2つ必要)を選択するように指示する方法はありますか?
次のようなもの:
select * from
(select 1 as resultOrder, *
from actualResults
order by date desc
limit 5
union
select 2 as resultOrder, *
from randomResults
limit 5)
order by resultOrder
limit 5
$ date_selectedより古い結果が必要であると仮定すると、最新のものが最初になります。
...
ORDER BY
date_add<$date_selected, date_add, 0) DESC,
RANDOM()
LIMIT 5
読み方:選択した日付より前のものを日付で選択し、次に選択した日付より後のものを選択します。