5
非常簡單的問題 - 我想更新一個只匹配2個參數的記錄。用where子句更新查詢
我應該做這樣的:使用update_all但我只想要一個最大1個記錄的更新
Model.where(:email =>"[email protected]",:code => "chejd").update(:password => "password").first
我發現的例子。
非常簡單的問題 - 我想更新一個只匹配2個參數的記錄。用where子句更新查詢
我應該做這樣的:使用update_all但我只想要一個最大1個記錄的更新
Model.where(:email =>"[email protected]",:code => "chejd").update(:password => "password").first
我發現的例子。
檢查這是否與你的DBMS和DB適配器:
Model.where(conditions).limit(1).update_all(changes) # => 1
更新:
的limit()
和update_all()
組合是example in the docs,所以它可能是最DB適配器支持。
如果您的方法中沒有使用純SQL,Rails將根據數據庫適配器將查詢轉換爲適當的語法SQL。 – MrYoshiji
這就是我所需要的 - 沒有做太多的測試,但似乎很好。謝謝 – tommyd456
這個例子在limit()之前使用'order()'說明符正確地建立了一個特定的記錄序列。這對於避免更新集合中與where()'規範匹配的任意記錄非常重要。 –