一个局域网内有很多台机器在播放视频,有一个MySQL表存着这些电脑的播放记录,每个ip播放一个视频就会有一个记录,一天一台机器会有很多个记录。现在我每台机器想要显示最新的一条记录应该怎么写。

解决方案 »

  1.   

    select * from record_table order by time desc limit 1
      

  2.   

    select * from record_table where id = yourid order by time desc limit 1
      

  3.   

    limit 1 不就是差一条记录吗
      

  4.   

    select id, max(time) from table group by id;
      

  5.   

    一共有三个字段id 播放时间 和播放文件的名称select * from (select * from tbl_name order by 播放时间 desc) tmp group by id
      

  6.   

    select * from (select * from tbl_name order by 播放时间 desc) tmp group by id
    sql语句可以这么写吗?
      

  7.   

    谢谢一个表已经可以了,我还有一个问题,要是想把多个表关联起来查询怎么写
    第一个表select id, max(time) from table group by id;关联第二个表table2的name
      

  8.   

    select table1.id, max(time) from table1 left join table2 on table1.id = table2.id group by table1.id
      

  9.   

    max(time)在数据库下能用在php里面好像不行
    我只能
    SELECT devGroup.name,t.play_time FROM devGroup,(Select * FROM playRecord_0 order by play_time desc) AS t where t.device_id=devGroup.device_id and devGroup.parent_id > 0 and devGroup.device_id > 0 GROUP BY devGroup.device_id
    在php下才能运行
    SELECT devGroup.name,max(playRecord_0.play_time) FROM devGroup,playRecord_0 where playRecord_0.device_id=devGroup.device_id and devGroup.parent_id > 0 and devGroup.device_id > 0 GROUP BY devGroup.device_id
    在sql下可以php显示不出来结果
    哪位高手帮忙看一下谢了
      

  10.   


    我想你的查询条件应该是先把几台机器的IP地址罗列出来。然后用IP地址去查询最新的一条记录。这就是你想要的每一台机器的最新一条记录啦。sql语句可以先把一个IP地址的记录过滤掉,过滤的是重复的,然后ORDER BY ID DESC LIMIT 1 这样查询不知道可以不。没有经过证实,凭自己想的。
      

  11.   

    我的意思是max(time)在页面里显示不出数据还有没有别的方法,现在这样虽然可以查出来但是速度超慢,这个数据库不是我做的,我不能改,只能用里面的数据,所以这么麻烦,你们在PHP数据库查询里面有用过max()之类的函数吗
      

  12.   

    现在我只有把max(playtime)换成Select * FROM playRecord_0 order by play_time desc才可以但是要花10分钟时间还有没有别的方法,或者怎么能在PHP中用max
      

  13.   

    我就是想问一下能不能在PHP中用max()
      

  14.   

    你的带聚合函数的sql语句是错误的
    聚合函数只能返回一行,而你可以返回的devGruop.name可以有多个.
    另外devGruop.name必须在聚合函数中,或者在gruop by子句中,在sqlserver和oracle都是这样的
    mysql应该也是这样
      

  15.   

    select b.name,a.* 
    from table a 
      join table2 b on a.id = b.id 
    where not exists (select 1 from table where a.id = id and time > a.time)
      

  16.   

     用这个就行了,其中table是你的播放记录表,table2是你的电脑列表,通过他们的ID关联。显示结果是 每台电脑 和它最新一条播放记录。