MySQL翻转布尔值只会将其设置为' 0'

时间:2016-04-04 15:13:30

标签: mysql

我有一个看起来像这样的MySQL语句函数

function store_channel_toggle_view_only($id){
    $conn = sql_connect();
    $stmt = mysqli_prepare($conn, "UPDATE channels SET view_only='NOT view_only' WHERE id='$id'");
    mysqli_stmt_execute($stmt);
    mysqli_stmt_close($stmt);
    sql_disconnect($conn);
}

正如预期的那样,当数据库中的值为1时,此语句将其转换为0,但由于某种原因,当值已经为0时,该值不再更改,保持为0

此外,我也尝试view_only='!view_only'具有相同的效果。

发生了什么事?为什么会这样? (是的,我仔细检查过,列真的是一个布尔值)

1 个答案:

答案 0 :(得分:2)

view_only='NOT view_only'  

这是一个字符串!

view_only = NOT view_only

这是view_only列上的实际 NOT 操作。