评价:
第一
SELECT files1.* FROM files1 WHERE !files1.修改时间 in (SELECT 修改时间 FROM files2)
这段代码速度非常快,但是不能辨别时间差异究竟哪个是新的,所以有风险;另外,如果相同的文件放在不同的子目录中,它也会忽视;
第二
m.older = 'files1'
m.newer = 'files2'
SELECT a.* FROM (m.newer) a ;
inner join (m.older) b on a.子目录 == b.子目录 and a.文件名 == b.文件名 ;
where a.修改时间 > b.修改时间
这段代码使用==达到精准的效果,不过速度明显变慢,也会无视新增加的文件;
第三
SELECT a.* FROM (m.newer) a ;
left join (m.older) b on a.子目录 == b.子目录 and a.文件名 == b.文件名 ;
where (a.修改时间 > b.修改时间) or (b.文件名 is null)
或者
SELECT a.* FROM (m.newer) a ;
inner join (m.older) b on a.子目录 == b.子目录 and a.文件名 == b.文件名 ;
where a.修改时间 > b.修改时间 ;
union ;
SELECT a.* FROM (m.newer) a ;
left join (m.older) b on a.子目录 == b.子目录 and a.文件名 == b.文件名 ;
where b.文件名 is null
只要把b.文件名 is null加上去,就会出现更新一样的文件、并且修改时间也一样!
2022年9月23日12:05:48发现:
备份以后的文件,修改时间会出现略微变化,所以才会造成明明文件已经备份了,却还固执的认为没有更新!——不是代码的问题。
第一
SELECT files1.* FROM files1 WHERE !files1.修改时间 in (SELECT 修改时间 FROM files2)
这段代码速度非常快,但是不能辨别时间差异究竟哪个是新的,所以有风险;另外,如果相同的文件放在不同的子目录中,它也会忽视;
第二
m.older = 'files1'
m.newer = 'files2'
SELECT a.* FROM (m.newer) a ;
inner join (m.older) b on a.子目录 == b.子目录 and a.文件名 == b.文件名 ;
where a.修改时间 > b.修改时间
这段代码使用==达到精准的效果,不过速度明显变慢,也会无视新增加的文件;
第三
SELECT a.* FROM (m.newer) a ;
left join (m.older) b on a.子目录 == b.子目录 and a.文件名 == b.文件名 ;
where (a.修改时间 > b.修改时间) or (b.文件名 is null)
或者
SELECT a.* FROM (m.newer) a ;
inner join (m.older) b on a.子目录 == b.子目录 and a.文件名 == b.文件名 ;
where a.修改时间 > b.修改时间 ;
union ;
SELECT a.* FROM (m.newer) a ;
left join (m.older) b on a.子目录 == b.子目录 and a.文件名 == b.文件名 ;
where b.文件名 is null
只要把b.文件名 is null加上去,就会出现更新一样的文件、并且修改时间也一样!
2022年9月23日12:05:48发现:
备份以后的文件,修改时间会出现略微变化,所以才会造成明明文件已经备份了,却还固执的认为没有更新!——不是代码的问题。
[此贴子已经被作者于2022-9-23 12:10编辑过]