假设我有一个表格客户,其字段为number_of_times_contacted
。现在,我想通过在姓氏等于Smith的每条记录的现有值中加1来更新此字段值。在伪代码中,我想做类似的事情:
db(db.customer.last_name == "Smith").update(
number_of_times_contacted = number_of_times_contacted + 1)
这样做的表达方式是什么?或者我是否先获取客户记录然后更新?
对于用id更新单个记录,表达式也会有所不同吗?
答案 0 :(得分:1)
db(db.customer.last_name == "Smith").update(
number_of_times_contacted=db.customer.number_of_times_contacted + 1)
按ID更新单个记录没有区别。
关于您的后续问题,确切的函数将取决于特定的数据库系统,但是这样的话:
from gluon.dal import Expression
db(db.customer.last_name == "Smith").update(
last_name=Expression(db, 'LTRIM(RTRIM(last_name))'))