Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQLdb python插入行或列上的增量计数(如果存在)_Python_Mysql_Python 2.7_Mysql Python - Fatal编程技术网

MySQLdb 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

我在MySQL中有一个简单的表,如下所示:

>ID |用户名|计数 我想使用python实现的是:

  • 将用户名添加到表中(如果不存在),并将计数设置为1
  • 只要用户名存在,将计数增加1
在Python2.7中使用MySQLdb的最佳方法是什么

当然,我可以通过查询用户名来做到这一点,然后如果存在更新计数,也许有更好的方法来做到这一点


谢谢

这里是一种使用@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