在MySQL / Oracle数据库中切换布尔值

时间:2014-11-13 14:53:59

标签: mysql sql oracle

Update myTable SET field = 1 (if field = 0 or if field is null) where myid = 12345;
Update myTable SET field = 0 (if field = 1) where myid = 12345;

在适当的SQL中为Oracle和MySQL转换此Pseudocode的最佳方法是什么?

2 个答案:

答案 0 :(得分:3)

你可以简单地使用这样的模数:

UPDATE myTable SET field = (field + 1) % 2 WHERE myId = 12345;

答案 1 :(得分:2)

由于DBMS中缺少真正的布尔值,您需要一个案例陈述:

update myTable
   set the_column = case when the_column = 1 then 0 else 1 end
where myId = 12345;

这假设列的值永远不会超过0和1