阅读背景:

MySQL insert 存在则更新,不存在则插入

来源:互联网 
有时候我们需要用一个表去记录某些经常变动的数据,比如现在有一个表,是用来记录页面被访问的IP和访问次数的。你可以用传统的方法,只需要一个IP字段,只要客户端访问,就把IP写入表中。查询的时候用group by和count去统计每个IP的记录条数。但是这种方法很不理想,这种方法需要保存许多次IP,占资源就变多了。再就是记录如果多的话,查询的时候速度慢。这种情况我们会用另一种表结构来记录数据,把IP作为主键,再添加个记录访问次数的字段。这样就可以很轻松的查询数据,但是在写入数据的时候也许会遇到麻烦。你可能需要每次写入数据的时候都查询一次来判断到底是插入还是更新。其实,这个操作在MySQL是很容易实现的,不用我们自己去判断。因为主键约束本身就是唯一的,它自己会做这个判断。我们只需要在它判断有重复时执行一条更新语句就可以了。比如现在有一张名为iplog的表,主键是ip,存放IP地址。有一个整数类型的普通字段cnt,存放相应IP的访问次数。于是,我们可以用这样一条SQL语句来操作有时候我们需要用一个表去记录某些经常变动的数据,比如现在有一个表,是用来记录页面被访问的IP和访问次


你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: