+----+------+------+------+
| id | name | age | sex |
+----+------+------+------+
| 16 | yang | 5 | s |
| 17 | hang | 4 | m |
我想修改id=16的用户的年龄,如果要现今age的值是大于插入数据的值,则不修改。这时我们可以使用mysql的比较函数greatest函数,sql语句为:“ update users set age=greatest(age,10) where id=16”,修改后数据表如下:
+----+------+------+------+
| id | name | age | sex |
+----+------+------+------+
| 16 | yang | 10 | s |
| 17 | hang | 4 | m |
如果使用on duplicate key update也是能执行的。如 insert into users (id,name,age,sex) values(16,'tang',12,sex='f') on duplicate key update name='tang',age=greatest(age,16),sex='f';
这句语句是向表中插入数据,如果已存在此key,则修改这条数据(on duplicate key update的用法),执行结果如下:
+----+------+------+------+
| id | name | age | sex |