为了账号安全,请及时绑定邮箱和手机立即绑定

update_time >:sql_last_value AND update_time < NOW()写法没有等号可能漏掉一些增量

我看了徐老师讲到如下写法是3.0的写法

SELECT * FROM t_blog WHERE update_time >:sql_last_value AND update_time < NOW() ORDER BY update_time desc


我感觉如果  update_time >:sql_last_value 没有带等号的话,一定会漏掉一些增量,因为你这样根本无法保证R12或R22的数据会扫描到?后面的总结3.0的时候,感觉没有讲透讲清楚。


麻烦徐老师解释下如上问题,谢谢!

正在回答

1 回答


假如2022:01:01 00:01插100条

第一次搜
>1979:01:01 00:00 < 2022:01:01 00:01

你可能根本就搜不出来,因为条件是少于当时系统时间00:01
其实就是搜索了
>1979:01:01 00:00 < 2020:01:01 00:00这个范围而已

所以这时候插入的数据根本没匹配到数据
注意这里保存的时间点可能是00:00,但绝对不是00:01

所以第二次搜的时候是>00:00而不是>00:01

>2022:01:01 00:00 < 2022:05:05 00:01

这里为什么是00:00而不是00:01呢,因为第一次搜的时候是记录<少于不是=的时间点

其实老师这个语法只是把当前时间插入的100条数据放弃搜索不处理而是供给下次执行搜索的范围做条件

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

update_time >:sql_last_value AND update_time < NOW()写法没有等号可能漏掉一些增量

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信