SELECT * FROM `tablename` ORDER BY to_days( `datefield` ) DESC LIMIT 1
你这到底是要在后台写还是在存储过程写啊? 不过我建议你用存储过程,安全又快速在mssql里面,这句话应该这样写 select top 1 * from tablename order by cast(datefield as datetime) desc
select * from 表名 where 条件 order by 日期字段 desc limit 0,1
楼主这个应该MYSQL吧,我给的语句是MYSQL的。
kingerq(多菜鸟) 你的方法是将1条记录都列出来,但我是希望列出6条.请看前面我举例.
<?php //我调试了好久,,最终结论是在不支持子查询的MYSQL数据库里根本无法用一条语句来实现你所需要的功能 //下面是在分组不多的情况下地折中办法$sql="select 分组字段名,max(日期字段名) from table group by 分组字段名"; $result=mysql_query($sql,$db); $sql1="select * from table where " $i=1 while ($rst=mysql_fetch_array($result)) { if ($i==1) $tmp.="(分组字段名=$rst[分组字段名] and 日期字段名='$rst[日期字段名]')"; else $tmp.=" or (分组字段名=$rst[分组字段名] and 日期字段名='$rst[日期字段名]')"; $i++; } $sql1.=$tmp; $result1=mysql_query($sql1,$db); $rst1=mysql_fetch_array($result1);//这里就得到你想要的记录了。。 //如果分组很多的话,SQL语句会变的很长,所以只能这样了。。 $sql="select 分组字段名,max(日期字段名) from table group by 分组字段名"; $result=mysql_query($sql,$db);while ($rst=mysql_fetch_array($result)) { $sql1="select * from table where (分组字段名=$rst[分组字段名] and 日期字段名='$rst[日期字段名]')"; $result1=mysql_query($sql1,$db); $rst1=mysql_fetch_array($result1);//这里就得到你想要的其中一条记录了。。 } ?>相信这一定不是最好的办法 如果谁有好的办法,也可拿出来大家分享啊。。
select top 1 * from tablename order by 1 desc
$sql="select 分组字段名,max(日期字段名) from table group by 分组字段名 order by 日期字段名desc";
mysql 4.1 后支持子查询的,不过速度很慢,建议用联合查询5.0支持视图
用select去嵌套select,绝对可以实现你要的效果 select * from (select ......你的分组条件) order by date desc limit 0,1
可以用下列语句:
$sql="select 日期字段名 from 表名 limit 0,1 order by '日期字段名' desc";
FROM `tablename`
ORDER BY to_days( `datefield` ) DESC
LIMIT 1
不过我建议你用存储过程,安全又快速在mssql里面,这句话应该这样写 select top 1 * from tablename order by cast(datefield as datetime) desc
//我调试了好久,,最终结论是在不支持子查询的MYSQL数据库里根本无法用一条语句来实现你所需要的功能 //下面是在分组不多的情况下地折中办法$sql="select 分组字段名,max(日期字段名) from table group by 分组字段名";
$result=mysql_query($sql,$db);
$sql1="select * from table where "
$i=1
while ($rst=mysql_fetch_array($result))
{
if ($i==1)
$tmp.="(分组字段名=$rst[分组字段名] and 日期字段名='$rst[日期字段名]')";
else
$tmp.=" or (分组字段名=$rst[分组字段名] and 日期字段名='$rst[日期字段名]')";
$i++;
}
$sql1.=$tmp;
$result1=mysql_query($sql1,$db);
$rst1=mysql_fetch_array($result1);//这里就得到你想要的记录了。。
//如果分组很多的话,SQL语句会变的很长,所以只能这样了。。
$sql="select 分组字段名,max(日期字段名) from table group by 分组字段名";
$result=mysql_query($sql,$db);while ($rst=mysql_fetch_array($result))
{
$sql1="select * from table where (分组字段名=$rst[分组字段名] and 日期字段名='$rst[日期字段名]')";
$result1=mysql_query($sql1,$db);
$rst1=mysql_fetch_array($result1);//这里就得到你想要的其中一条记录了。。
}
?>相信这一定不是最好的办法
如果谁有好的办法,也可拿出来大家分享啊。。
select * from (select ......你的分组条件) order by date desc limit 0,1