[英]how to write sql to update some field given only one record in the target table
我在MySQL数据库中得到一个名为test
的表。
test
表中有一些字段,例如name
。
但是,表中只有0或1条记录。
当出现新记录,例如name = fox
时,我想更新表test
的目标字段。
我使用python处理MySQL,而我的问题是如何编写sql。
PS。 我尝试不使用where表达式,但是失败了。
假设我已经连接到数据库,如下所示:
conn = MySQLdb.connect(host=myhost, ...)
您需要的是一个查询,该查询对数据执行合并操作。 算法上:
When record exists
do Update
Else
do Insert
您可以仔细阅读本文,以了解在这种情况下的处理方法:
http://www.xaprb.com/blog/2006/06/17/3-ways-to-write-upsert-and-merge-queries-in-mysql/
我个人推荐的是INSERT.. ON DUPLICATE KEY UPDATE
在您的情况下,类似
INSERT INTO test (name)
VALUES ('fox')
ON DUPLICATE KEY UPDATE
name = 'fox';
使用这种查询,您可以一次性处理这种情况。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.