[英]mysql select event as multiple records
how can i select event in multiple records as days in resultset 如何在多个记录中选择事件作为结果集中的天
Example: 例:
id | event | dateFrom | dateTo
1 festival 2012-06-15 01:18:00 2012-06-17 01:18:00
Result: 结果:
id | date
1 2012-06-15
1 2012-06-16
1 2012-06-17
You can't. 你不能 Best way is to make a simple table filled with all the dates of a year. 最好的方法是制作一张包含一年中所有日期的简单表格。 I made a simple stored procedure: 我做了一个简单的存储过程:
CREATE DEFINER = 'root_extern'@'%' PROCEDURE fill_calendar
(
IN start_date date,
IN end_date date
)
BEGIN
DECLARE crt_date DATE;
SET crt_date=start_date;
WHILE crt_date < end_date DO
INSERT INTO `calendar` (`date`) VALUES (crt_date);
SET crt_date = ADDDATE(crt_date, INTERVAL 1 DAY);
END WHILE;
END|
Your query will look like: SELECT date FROM calendar WHERE date BETWEEN dateFrom AND dateTo
您的查询将如下所示: SELECT date FROM calendar WHERE date BETWEEN dateFrom AND dateTo
使用这样的联合:
(SELECT id, dateFrom date FROM table) UNION (SELECT id, dateTo date FROM table)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.