MySQLdb python插入行或列上的增量计数(如果存在)
我在MySQL中有一个简单的表,如下所示: >ID |用户名|计数 我想使用python实现的是:MySQLdb python插入行或列上的增量计数(如果存在),python,mysql,python-2.7,mysql-python,Python,Mysql,Python 2.7,Mysql Python,我在MySQL中有一个简单的表,如下所示: >ID |用户名|计数 我想使用python实现的是: 将用户名添加到表中(如果不存在),并将计数设置为1 只要用户名存在,将计数增加1 在Python2.7中使用MySQLdb的最佳方法是什么 当然,我可以通过查询用户名来做到这一点,然后如果存在更新计数,也许有更好的方法来做到这一点 谢谢 这里是一种使用@johnthexii提供的链接()的方法(它只使用MySQL,所以它不是特定于Python的) 下面是正在发生的情况的详细说明:usernam
- 将用户名添加到表中(如果不存在),并将计数设置为1
- 只要用户名存在,将计数增加1
谢谢 这里是一种使用@johnthexii提供的链接()的方法(它只使用MySQL,所以它不是特定于Python的) 下面是正在发生的情况的详细说明:
username
字段被标记为唯一,因此任何使用现有用户名插入记录的尝试都将在数据库级别失败。然后,INSERT
语句有一个额外的
ON DUPLICATE KEY UPDATE `duplicates` = `duplicates`+1
这告诉MySQL,与其插入失败,不如只取duplicates
列并递增1。当您运行三个INSERT命令时,您将看到两条记录,stackoverflow.com
的duplicates
值为1,而dba.stackexchange.com
的duplicates
值为0。将对您有用。
ON DUPLICATE KEY UPDATE `duplicates` = `duplicates`+1