2012-01-31 77 views
1

我试图想出一种方法来在时间范围内查询,根据其可用性将作业分配给不同的人。在时间范围内搜索

所以我成像存储在MySQL中的表:

Person  | Available (day) | Available (hours) | Free (from) | Free (until) 
Mateluna  | Monday   | 10:00 - 13:00  | 10:00  | 13:00 
Mateluna  | Monday   | 15:00 - 19:00  | 15:00  | 19:00 
DelloStritto | Tuesday   | 12:00 - 18:00  | 12:00  | 18:00 
DeFranco  | Monday   | 10:00 - 11:30  | 10:00  | 11:30 
Richardson | Monday   | 08:00 - 10:30  | 08:00  | 10:30 

*如果(从)和免费(直到)将从可用(小时)来生成免费

的想法是我可以创建一个表格,用“周一”&“10:00 - 11:30”等参数查询表格,并且该函数将返回DeFranco和Mateluna。从我能想到的情况来看,这将涉及在“可用(日)”内进行搜索,并能够在“可用(小时)”时间范围内进行搜索 - 我不知道该如何做或确定是可能的。

目前我可以创造出一些有用的东西,但它出现的更通用,例如。我可以搜索“星期一”,并在星期一查看所有人,然后我必须查看输出列表以查找符合我需求的人,例如。

Mateluna @ 10:00 - 13:00 
DeFranco @ 10:00 - 11:30 
Richardson @ 08:00 - 10:30 

任何帮助,赞赏我怎么能解决这个问题,我有一种感觉,它可能涉及具有不同的存储信息,但我不知道。

+1

如果避免多值列和参数,应该更容易:“10:00 - 11:30”是多值的,因为它包含from_time和to_time两个值。当然,你想继续以这种方式问题吗? – danihp 2012-01-31 14:08:53

回答

0

我觉得你的目的,你可以使用“AND”或查询“加入” ....例如

SELECT * FROM DB_NAME其中%之间可用(天)=%s和可用小时数s和%s;