簡體   English   中英

MYSQL 5.7 UPDATE 值與三元(執行真/假切換)

[英]MYSQL 5.7 UPDATE value with ternary (perform a true/false toggle)

我正在嘗試在 true 和 false 之間切換表列。 我最近的嘗試——

UPDATE favorites SET favorited = (IF(favorited=true, 'false', 'true')) WHERE title="${recipe}"

-- 給我以下錯誤:

ER_TRUNCATED_WRONG_VALUE: Truncated incorrect DOUBLE value: 'true'

任何 MYSQL 天才能指導我使用正確的語法嗎?

您正在從 IF 返回字符串,即'false', 'true'返回布爾值

UPDATE favorites 
    SET favorited = (IF(favorited=true, false, true)) .....

在這種情況下不需要小音符天才:)

如果favorited的列的數據類型是BOOLEAN那么你正在做的是當前值的否定所以你需要的只是運算符NOT

UPDATE favorites 
SET favorited = not favorited
WHERE title="${recipe}"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM