根据日期和时间选择价格

时间:2014-12-22 11:37:42

标签: mysql

我在我的mysql数据库表数据中有

    id  day from        to          category_id size_id price
____________________________________________________________________
    1   1   NULL        NULL        12          18      4.90    
    5   1   11:30:00    14:00:00    12          18      3.00    

其中day代表dayofweek 1=Monday, 2=Tuesday,....

如果用户在Monday上购买产品,则category: 12 and of size_id:18下的产品应该花费$ 4.90,但如果在currenttime()之间购买11:30 to 14:00则应该花费他$ 3.00 {1}}

我需要一个只根据day numbercurrenttime

返回价格的查询

如果可以编写单个查询或2,我不知道是否使用case statement Exists

1 个答案:

答案 0 :(得分:0)

可能这应该有效:

SELECT IFNULL(
    (SELECT price FROM `table1` WHERE `category_id` = @id AND `size_id` = @size_id AND `from` >= curtime() AND to < curtime() LIMIT 1), 
    (SELECT price FROM `table1` WHERE `category_id` = @id AND `size_id` = @size_id AND `from` IS NULL AND `to` IS NULL LIMIT 1) AS `Price`