繁体   English   中英

在目标表中仅给出一条记录的情况下,如何编写sql来更新某些字段

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM