クエリの実行時に有効な他の価格がない場合に常に有効な1つの価格を設定できる、いくつかの製品価格の表を取得しました。
id | item_id | valid_from | valid_to   | price
---+---------+------------+------------+------
1  | 1337    | 2013-01-17 | 2013-01-18 | 35.50
2  | 1337    | NULL       | NULL       | 39.95
3  | 1337    | 2013-01-13 | 2013-01-18 | 36.00
正しい価格NOW()(今日は35.50)を取得する方法がわからないため、ここでサポートが必要です。一定期間有効な価格が2つ以上ある場合は、後で開始する価格を取得する予定です。これまでのところ私は:
SELECT price
FROM my_table
WHERE item_id = 1337
AND (
    valid_from <= NOW() AND
    valid_to >= NOW()
) OR (
    id NOT IN (
        SELECT id
        FROM my_table
        WHERE item_id = 1337
        AND valid_from <= NOW()
        AND valid_to >= NOW()
    ) AND
    valid_from IS NULL AND
    valid_to IS NULL
)
ORDER BY valid_from DESC
LIMIT 1
ところで、私はこのテーブル構造に本当に満足していません。さらにコメントがあれば読みたいと思います。どうもありがとうございます。