我在我的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 number
和currenttime
如果可以编写单个查询或2,我不知道是否使用case statement
Exists
。
答案 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`