为了创建过滤器下拉列表,我需要找出mysql表中的第一个和最后一个日期。我指的是一个有日期的字段。
我的第一个想法是运行一个查询来拉取所有记录,然后在php中做一些逻辑来查找第一个和最后一个日期。
任何更好的建议......一旦有庞大的数据集,我的解决方案似乎效率非常低。
答案 0 :(得分:9)
最小的日期:
select date_field from table order by date_field asc limit 1;
最大日期:
select date_field from table order by date_field desc limit 1;
这两种:
select min(date_field),max(date_field) from table;
答案 1 :(得分:4)
永远不要拉所有记录!使用SQL:
SELECT your_time_column FROM your_table ORDER BY your_time_column ASC LIMIT 1
和
SELECT your_time_column FROM your_table ORDER BY your_time_column DESC LIMIT 1
或
SELECT MAX(your_time_column), MIN(your_time_column) FROM your_table
答案 2 :(得分:2)
这个怎么样?
SELECT MAX(`date`), MIN(`date`)
FROM your_table;
date
上的索引会有所帮助。
答案 3 :(得分:2)
使用 mysql min()
和max()
选择第一个和最后一个日期
select min(date),max(date) from table;
答案 4 :(得分:1)
实际上,如果您在php中按日期SELECT * FROM table_name ORDER BY date
订购查询,您可以轻松获取第一个和最后一个日期:
首先:$first_date = reset($result);
最后:$last_date = end($result);
答案 5 :(得分:1)
您可以进行2次查询(1表示第一次约会,1表示最后一次约会)并将它们联合起来。
(SELECT the_date FROM table ORDER BY the_date ACS LIMIT 1)
UNION
(SELECT the_date FROM table ORDER BY the_date DESC LIMIT 1)