【发布时间】:2011-02-21 03:05:58
【问题描述】:
我有 2 个数据库。一个是properties,另一个是dates。在dates 中,我将land_id 和日期(格式为YYYYMMDD)相关联,这意味着日期不可用。
我需要制定一个用户可以指定开始和结束日期的查询,然后选择一个可用日期的属性(不在date 数据库中)。航空公司和酒店网站是如何做到这种逻辑的?我正在考虑获取日期范围并选择其间的所有天数,并在日期不匹配的情况下进行查询,并按结果数量对其进行排序,但我可以看到这很容易变成一个密集的查询。
CREATE TABLE IF NOT EXISTS `dates` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`land_id` int(11) NOT NULL,
`date` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=44 ;
--
-- Dumping data for table `dates`
--
INSERT INTO `dates` (`id`, `land_id`, `date`) VALUES
(43, 1, '20100526'),
(39, 1, '20100522'),
(40, 1, '20100523'),
(41, 1, '20100521'),
(42, 1, '20100525');
【问题讨论】:
-
以专门为日期设计的数据类型存储日期:
date -
zerkms,感谢您的回复,但这并没有解决提取正确属性所需的逻辑?:)
-
很抱歉这么频繁地编辑我的答案,我想现在应该可以了...
标签: php mysql web-applications