期望结果如上,想输出红色框内的两条记录,即同一编号下最后一次更新的两条记录
第一次使用distinct尝试如下,但失败,因为distinct daima对于“最后更新时间”这段代码无效
$result=mysql_query("SELECT distinct daima, id FROM db WHERE id='$id'");
while($row=mysql_fetch_array($result)){
echo $row["case_id"]."<br />";
}
$result=mysql_query("SELECT distinct daima, id, start_time FROM db WHERE id='$id'");
while($row=mysql_fetch_array($result)){
echo $row["start_time"]."<br />";
}
第二次使用SELECT * FROM db WHERE id='$id' ORDER BY start_time DESC LIMIT 1
但还是失败,因为两段代码都共享相同的id字段,就只出现了一条结果
第三次使用group by daima,结果出来了两条,但更新的时间不对...
实在没有办法了,特详细描述问题求助于各位达人~谢谢先
15 个解决方案
#1
select bh,max(sj) from tt group by bh
#2
select bh,max(UNIX_TIMESTAMP(sj)) from tt group by bh
#3
回dzxccsu达人,我明白您的意思
但这样处理也有问题
因为sj(在我这里既start_time)是echo的内容
如果用了max(start_time)那“最后更新”那一栏就会echo空白,无内容
max(daima)也是同样问题
但这样处理也有问题
因为sj(在我这里既start_time)是echo的内容
如果用了max(start_time)那“最后更新”那一栏就会echo空白,无内容
max(daima)也是同样问题
#4
怎么会空白呢?
#5
你选择出来的结果是什么呢?
#6
我也不清楚,反正将max(UNIX_TIMESTAMP(start_time))用了后,“最后更新”栏里面就无所输出值了
我怀疑是因为max(start_time) 后就没有从数据库抓出start_time这个字段的值得原因,因此我在max(UNIX_TIMESTAMP(start_time))之前也加入了个start_time
即SELECT max(UNIX_TIMESTAMP(start_time)), start_time
这样一来就有值出现在“最后更新”了,但输出的效果还是我正文最后一贴得效果..
我怀疑是因为max(start_time) 后就没有从数据库抓出start_time这个字段的值得原因,因此我在max(UNIX_TIMESTAMP(start_time))之前也加入了个start_time
即SELECT max(UNIX_TIMESTAMP(start_time)), start_time
这样一来就有值出现在“最后更新”了,但输出的效果还是我正文最后一贴得效果..
#7
把执行的结果贴出来看看!
#8
就是这样的
#9
我又想了个办法,将编号作为副键,新增了字段名为cid的自动increament的主键
$result=mysql_query("SELECT max(cid), id, daima, start_time FROM db WHERE id='$id' GROUP BY daima");
但是max(cid)好像没有起到作用,因为输出结果还是我主帖的最后一个图...
$result=mysql_query("SELECT max(cid), id, daima, start_time FROM db WHERE id='$id' GROUP BY daima");
但是max(cid)好像没有起到作用,因为输出结果还是我主帖的最后一个图...
#10
--测试代码
use
SQL_Test
go
create table ttime(
bh varchar(200) not null,
sj datetime
)
insert into ttime
select '2009111601','2009-11-16 15:01:46'
union all
select '2009111601','2009-11-16 15:02:46'
union all
select '2009111601','2009-11-16 15:03:46'
union all
select '2009111601','2009-11-16 15:04:46'
union all
select '2009111602','2009-11-16 15:05:46'
union all
select '2009111602','2009-11-16 15:07:46'
--查询
select bh,max(sj) from ttime group by bh
--结果
2009111601 2009-11-16 15:04:46.000
2009111602 2009-11-16 15:07:46.000
#11
首先请荣我感谢dzxccsu达人的乐意助人精神,太感动了,还建立了表测试...
但是我照着您的例子也做了个一抹一样的测试,居然还是不出时间字段的值...彻底崩溃
<?php
$result=mysql_query("SELECT bh, max(sj) FROM ttime GROUP BY bh");
while($row=mysql_fetch_array($result)){
echo $row["bh"]."<br />";
}
?>
<?php
$result=mysql_query("SELECT bh, max(sj) FROM ttime GROUP BY bh");
while($row=mysql_fetch_array($result)){
echo $row["sj"]."<br />";
}
?>
但是我照着您的例子也做了个一抹一样的测试,居然还是不出时间字段的值...彻底崩溃
<?php
$result=mysql_query("SELECT bh, max(sj) FROM ttime GROUP BY bh");
while($row=mysql_fetch_array($result)){
echo $row["bh"]."<br />";
}
?>
<?php
$result=mysql_query("SELECT bh, max(sj) FROM ttime GROUP BY bh");
while($row=mysql_fetch_array($result)){
echo $row["sj"]."<br />";
}
?>
#12
试试
$result=mysql_query("SELECT bh, max(sj) FROM ttime GROUP BY bh");
while($row=mysql_fetch_row($result)){
echo $row[1]." <br />";
#13
果然行了!!!
太神奇了,究竟是什么原因呢?以前echo['关键字']都可以的,为何这次必须用1呢?
太神奇了,究竟是什么原因呢?以前echo['关键字']都可以的,为何这次必须用1呢?
#14
这样也行
$result=mysql_query("SELECT bh, max(sj) as sj FROM ttime GROUP BY bh");
while($row=mysql_fetch_array($result)){
echo $row["sj"]." <br />";
}
#15
果然果然!!!
叩谢dzxccsu达人!
叩谢dzxccsu达人!
#1
select bh,max(sj) from tt group by bh
#2
select bh,max(UNIX_TIMESTAMP(sj)) from tt group by bh
#3
回dzxccsu达人,我明白您的意思
但这样处理也有问题
因为sj(在我这里既start_time)是echo的内容
如果用了max(start_time)那“最后更新”那一栏就会echo空白,无内容
max(daima)也是同样问题
但这样处理也有问题
因为sj(在我这里既start_time)是echo的内容
如果用了max(start_time)那“最后更新”那一栏就会echo空白,无内容
max(daima)也是同样问题
#4
怎么会空白呢?
#5
你选择出来的结果是什么呢?
#6
我也不清楚,反正将max(UNIX_TIMESTAMP(start_time))用了后,“最后更新”栏里面就无所输出值了
我怀疑是因为max(start_time) 后就没有从数据库抓出start_time这个字段的值得原因,因此我在max(UNIX_TIMESTAMP(start_time))之前也加入了个start_time
即SELECT max(UNIX_TIMESTAMP(start_time)), start_time
这样一来就有值出现在“最后更新”了,但输出的效果还是我正文最后一贴得效果..
我怀疑是因为max(start_time) 后就没有从数据库抓出start_time这个字段的值得原因,因此我在max(UNIX_TIMESTAMP(start_time))之前也加入了个start_time
即SELECT max(UNIX_TIMESTAMP(start_time)), start_time
这样一来就有值出现在“最后更新”了,但输出的效果还是我正文最后一贴得效果..
#7
把执行的结果贴出来看看!
#8
就是这样的
#9
我又想了个办法,将编号作为副键,新增了字段名为cid的自动increament的主键
$result=mysql_query("SELECT max(cid), id, daima, start_time FROM db WHERE id='$id' GROUP BY daima");
但是max(cid)好像没有起到作用,因为输出结果还是我主帖的最后一个图...
$result=mysql_query("SELECT max(cid), id, daima, start_time FROM db WHERE id='$id' GROUP BY daima");
但是max(cid)好像没有起到作用,因为输出结果还是我主帖的最后一个图...
#10
--测试代码
use
SQL_Test
go
create table ttime(
bh varchar(200) not null,
sj datetime
)
insert into ttime
select '2009111601','2009-11-16 15:01:46'
union all
select '2009111601','2009-11-16 15:02:46'
union all
select '2009111601','2009-11-16 15:03:46'
union all
select '2009111601','2009-11-16 15:04:46'
union all
select '2009111602','2009-11-16 15:05:46'
union all
select '2009111602','2009-11-16 15:07:46'
--查询
select bh,max(sj) from ttime group by bh
--结果
2009111601 2009-11-16 15:04:46.000
2009111602 2009-11-16 15:07:46.000
#11
首先请荣我感谢dzxccsu达人的乐意助人精神,太感动了,还建立了表测试...
但是我照着您的例子也做了个一抹一样的测试,居然还是不出时间字段的值...彻底崩溃
<?php
$result=mysql_query("SELECT bh, max(sj) FROM ttime GROUP BY bh");
while($row=mysql_fetch_array($result)){
echo $row["bh"]."<br />";
}
?>
<?php
$result=mysql_query("SELECT bh, max(sj) FROM ttime GROUP BY bh");
while($row=mysql_fetch_array($result)){
echo $row["sj"]."<br />";
}
?>
但是我照着您的例子也做了个一抹一样的测试,居然还是不出时间字段的值...彻底崩溃
<?php
$result=mysql_query("SELECT bh, max(sj) FROM ttime GROUP BY bh");
while($row=mysql_fetch_array($result)){
echo $row["bh"]."<br />";
}
?>
<?php
$result=mysql_query("SELECT bh, max(sj) FROM ttime GROUP BY bh");
while($row=mysql_fetch_array($result)){
echo $row["sj"]."<br />";
}
?>
#12
试试
$result=mysql_query("SELECT bh, max(sj) FROM ttime GROUP BY bh");
while($row=mysql_fetch_row($result)){
echo $row[1]." <br />";
#13
果然行了!!!
太神奇了,究竟是什么原因呢?以前echo['关键字']都可以的,为何这次必须用1呢?
太神奇了,究竟是什么原因呢?以前echo['关键字']都可以的,为何这次必须用1呢?
#14
这样也行
$result=mysql_query("SELECT bh, max(sj) as sj FROM ttime GROUP BY bh");
while($row=mysql_fetch_array($result)){
echo $row["sj"]." <br />";
}
#15
果然果然!!!
叩谢dzxccsu达人!
叩谢dzxccsu达人!