2014-02-14 65 views
0

假設我有一個表顧客,其字段爲number_of_times_contacted。現在,我想通過將每個記錄的姓氏等於Smith的現有值加1來更新此字段值。在僞代碼中,我想要做類似的操作:如何使用web2py中的現有值更新記錄值?

db(db.customer.last_name == "Smith").update(
    number_of_times_contacted = number_of_times_contacted + 1) 

這是什麼表達式?或者我有沒有先獲得客戶記錄然後更新?

也可以表達任何不同的更新單個記錄的ID?

回答

1
db(db.customer.last_name == "Smith").update(
    number_of_times_contacted=db.customer.number_of_times_contacted + 1) 

如果按ID更新單個記錄,則不會有差異。

關於你的後續問題,確切的功能(S)將取決於特定的數據庫系統,但這樣的事情:

from gluon.dal import Expression 
db(db.customer.last_name == "Smith").update(
    last_name=Expression(db, 'LTRIM(RTRIM(last_name))')) 
+0

恭喜上打10K – User

+0

什麼,如果我想更新所有姓氏是姓氏的修剪版本?例如將姓氏(如「Smith」)轉換爲「Smith」 – User

+0

查看更新的答案。如果需要,可以使用'dal.Expression'類來指定任意的SQL表達式。 – Anthony

相關問題