这个执行起来好慢,有效率高一点的写法吗
[Quote=引用 6 楼 wwwwa 的回复:]
DELIMITER $$
DROP PROCEDURE IF EXISTS zj$$
CREATE PROCEDURE zj(i DATE,j DATE)
BEGIN
WHILE i<=j DO
INSERT INTO lsb VALUES(i);
SET i=i+INTERVAL 1 DAY;
END WHILE;
END$$
DELIMITER ;
DELIMITER $$
DROP PROCEDURE IF EXISTS zj$$
CREATE PROCEDURE zj(i DATE,j DATE)
BEGIN
WHILE i<=j DO
INSERT INTO lsb VALUES(i);
SET i=i+INTERVAL 1 DAY;
END WHILE;
END$$
DELIMITER ;
方法一,使用存储过程,递增输出日期,(如果这样,还不如直接在你的程序中实现比较高效)
方法二,创建一个日期表,日期为主键,在其中存放自1900-01-01 到 2999-12-31的的所有日期,然后可以直接 select * from 日期表 where 日期 between 2011-12-01 至 2011-12-05