我正在做的是插入一條記錄,然後使用相同的ID禁用以前的記錄,因爲它們將不再被使用。不過,我期待着以最簡單的方式做到這一點。刪除記錄確實不是一種選擇。Mysql:在更新查詢的兩個條件下切換int字段的值
嘗試操作順序:
- 插入活躍INUSE價值
inUse = 1
- 更新爲同一ID下面的記錄是不再使用:
inUse = 0
我首先想到的是運行此查詢:
UPDATE page_tags SET inUse = IF(inUse = 1, 0, 1) WHERE page_id = 23678459 AND tag_id NOT IN (10, 4);
此查詢的唯一問題是,如果它再次運行,它會將所有這些停用的值切換回1.我需要特定ID的所有標記才能切換回來,前提是它們被WHERE聲明。
你可以做inUse'的''無條件向update' 0作爲第一查詢然後用'inUse = 1'插入''。有沒有理由不這樣做? – ManieQ
@ManieQ我曾想過這件事,但無論哪種方式,我仍然認爲你需要某種方式來看它,因爲如果一個標籤已經存在,我不會添加一個新的,我會使用現有的。所以我需要不停用該標籤,或重新激活它... – stwhite