gpt4 book ai didi

python - 使用 peewee 更新动态确定的字段

转载 作者:行者123 更新时间:2023-11-30 00:31:49 26 4
gpt4 key购买 nike

我有一个如下的 peewee 模型:

class Parrot(Model):
is_alive = BooleanField()
bought = DateField()
color = CharField()
name = CharField()
id = IntegerField()

我从用户那里获取这些数据,并在(MySQL)数据库中查找相应的 id。我现在想做的是更新那些目前未设置/为空的属性。例如,如果新数据具有以下属性:

is_alive = True
bought = '1965-03-14'
color = None
name = 'norwegian'
id = 17

数据库中的数据有:

is_alive = False
bought = None
color = 'blue'
name = ''
id = 17

我想更新购买日期和名称(未设置或为空),但不更改 is_alive 状态。在这种情况下,我可以在单独的类实例中获取新数据和旧数据,手动创建属性列表并将它们一一比较,在必要时进行更新,最后将结果保存到数据库中。但是,我觉得可能有更好的方法来处理这个问题,它也可以用于具有任何属性的任何类。有吗?

最佳答案

MySQL解决方案:

UPDATE my_table SET  
bought = ( case when bought is NULL OR bought = '' ) then ? end )
, name = ( case when name is NULL OR name = '' ) then ? end )
-- include other field values if any, here
WHERE
id = ?

使用您的脚本语言设置参数值。
如果参数与旧值匹配,则默认不执行更新。

关于python - 使用 peewee 更新动态确定的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22449140/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com