Tôi mới sử dụng propel và tôi đang tìm cách tăng giá trị trong cơ sở dữ liệu MySQL của mình mà không cần phải thực hiện toàn bộ chu trình đọc-cập nhật. Như thế này:Giá trị gia tăng trong cơ sở dữ liệu bằng cách sử dụng Propel
UPDATE books SET popularity = popularity + 1 WHERE id = 123
Dĩ nhiên tôi có thể làm:
$book = new BookQuery::create()->findPk(123);
$book->setPopularity($book->getPopularity() + 1);
$book->save();
Nhưng điều đó sẽ cho kết quả trong 2 truy vấn (SELECT và UPDATE).
Có cách nào gọn gàng để thực hiện việc này trong Propel không?
Bạn có thể thực hiện SQL thẳng trong propel; nếu không, bạn có thể sử dụng kết hợp create() -> filterBy() -> update() để thực hiện những gì bạn muốn. – versalle88
Tôi biết tôi có thể làm SQL thẳng trong Propel, nhưng tôi chỉ muốn hiểu cách giải quyết vấn đề này với Propel. Ngoài ra nếu tôi sử dụng update(), cú pháp sẽ trông như thế nào để tăng giá trị? –