SQLite中的条件更新

xra*_*alf 7 sql sqlite

我可以在这样SQLite的声明中创建吗?

update books set
(if number_of_pages > 0 then number_of_pages = number_of_pages - 1)
where book_id = 10
Run Code Online (Sandbox Code Playgroud)

这有一个有效的语法吗?

Mic*_*ski 16

一个CASE语句应该具有以下语法工作:

UPDATE
  books
SET number_of_page = CASE WHEN number_of_pages > 0 THEN (number_of_pages - 1) ELSE 0 END
WHERE whatever_condition
Run Code Online (Sandbox Code Playgroud)


Phe*_*nix 5

这不等于这个说法吗?

update books set number_of_pages = number_of_pages - 1 where number_of_pages>0
Run Code Online (Sandbox Code Playgroud)

编辑:

根据新的声明:

update books set number_of_pages = number_of_pages - 1 where number_of_pages>0 and book_id = 10
Run Code Online (Sandbox Code Playgroud)