2023年8月3日发(作者:)
mysqlupdate⾏数_关于update语句返回的影响⾏数今天很忙,本来想存成草稿有空在编辑的。结果⼀不⼩⼼发布了,所以只能先写完了。先描述下背景,⼀个提问的问题以前我认为,只要是update的where条件可以找到数据的,那么返回的影响⾏数必然是⼤于0的。写了⼀个SQL: UPDATE tss_view_template SET name='默认风格' where id=1; 结果返回影响⾏数是0,但是SQL变成这样:UPDATE tss_view_template SET name='默认风格',gmt_create=now() where id=1; 结果返回影响⾏数是1 难道说这条update的执⾏之前,会先⽐对你要更新的字段,如果是⼀样的,就不算是更新 还是说这个是MySQL的特性把这个问题简单的归纳下就是,updae语句如果不实际改变数据,那么会不会在底层做操作?于是在本地做了⼀下测试mysql> update test set a=1 where b=2;Query OK, 0 rows affectedRows matched: 1 Changed: 0 Warnings: 0mysql> select row_count();+-------------+| row_count() |+-------------+| 0 |+-------------+1 row in setmysql> update test set a=2 where b=2;Query OK, 1 ro
2023年8月3日发(作者:)
mysqlupdate⾏数_关于update语句返回的影响⾏数今天很忙,本来想存成草稿有空在编辑的。结果⼀不⼩⼼发布了,所以只能先写完了。先描述下背景,⼀个提问的问题以前我认为,只要是update的where条件可以找到数据的,那么返回的影响⾏数必然是⼤于0的。写了⼀个SQL: UPDATE tss_view_template SET name='默认风格' where id=1; 结果返回影响⾏数是0,但是SQL变成这样:UPDATE tss_view_template SET name='默认风格',gmt_create=now() where id=1; 结果返回影响⾏数是1 难道说这条update的执⾏之前,会先⽐对你要更新的字段,如果是⼀样的,就不算是更新 还是说这个是MySQL的特性把这个问题简单的归纳下就是,updae语句如果不实际改变数据,那么会不会在底层做操作?于是在本地做了⼀下测试mysql> update test set a=1 where b=2;Query OK, 0 rows affectedRows matched: 1 Changed: 0 Warnings: 0mysql> select row_count();+-------------+| row_count() |+-------------+| 0 |+-------------+1 row in setmysql> update test set a=2 where b=2;Query OK, 1 ro
发布评论