楼主:
LaPass (LaPass)
2014-10-31 10:48:12数据库名称:
MySQL
数据库版本:
内容/问题描述:
有多笔资料
id rid name value modified date
1 3 小明 0 管理员A 2014-10-31 10:01:00
2 3 小王 0 管理员A 2014-10-31 10:02:00
3 3 小华 1 管理员B 2014-10-31 10:03:00
4 3 小华 1 管理员A 2014-10-31 10:04:00
5 4 小英 5 管理员A 2014-10-31 10:05:00
6 4 小英 5 管理员B 2014-10-31 10:06:00
7 4 小英 6 管理员C 2014-10-31 10:07:00
8 4 小英 7 管理员C 2014-10-31 10:08:00
这资料表记录了哪个管理员修改过那个资料表的资料
我想寻找 rid=3 且最后变更name字段的管理员
我目前想到的就只有把rid=3的资料全部捞出来,对时间做降序排列
然后一笔一笔的比对资料而已
这样感觉起来很没效率
有没有办法直接捞出最后变更的管理员呢?
作者:
moyasi (Simple Life)
2014-10-31 13:53:00最简单的方式找出max(date)
楼主:
LaPass (LaPass)
2014-10-31 15:20:00等等,最后一笔不一定是变更name字段喔,也可能是变更VAL
作者:
moyasi (Simple Life)
2014-10-31 16:03:00那你的时间应该要存的是有变更name字段的吧不然你要怎么回头去查
楼主:
LaPass (LaPass)
2014-10-31 16:58:00那个是整个资料表的LOG档,我没办法动那个结构我是指,有sql变动字段中的资料的话,就会自动存一笔变动记录下去。有另外检视所有变动记录的页面,是一笔一笔抓出来显示,并比对哪个字段被变动这样。那现在我要抓的是某个字段被变动的时间点跟操作者,不是全部。
作者:
GoalBased (Artificail Intelligence)
2014-10-31 17:59:00不是很懂你想抓什么东西在这个情况下是 4 3 小华 1 管理员A这一笔吗?select top 1 modified from table where rid = 3 ordeorder by date desc
作者:
bohei (run and fall)
2014-11-01 08:03:00log档中纪录的东西多个变动字段,就不会把自己搞得这么痛苦了XD
楼主:
LaPass (LaPass)
2014-11-03 11:39:003 3 小华 1 管理员B 2014-10-31 10:03:00这笔才对,因为是管理员B把他的名称从小王改成小华多记录变动字段是比较简单没错,但是当初设计系统的人是直接位每个资料表多开了个用来记录的表,然后在程式、数据库的中介层多加个记录的动作下去,直接把变动的资料行整行复制过去
作者:
GoalBased (Artificail Intelligence)
2014-11-03 12:01:00下面那篇的回复 不合用吗?
作者:
cutekid (可爱小孩子)
2014-11-03 12:18:00Hello 我在下面唷 ^.<