我的問題是:我需要在MySQL上只使用SQL來啓用/禁用特定項目的set type列,而不會丟失以前的數據。只更新設置類型列上的一個可設置項目?
僞例如:
UPDATE `table`
SET `setlist` = TOGGLE_SET(`setlist`, 'option_a`, true)
WHERE `id` = 1
LIMIT 1
實驗值: TOGGLE_SET(列數據,字符串選項,布爾模式)是假的方法,不存在,只是爲了瞭解。
創建例如:
CREATE TABLE `table` (
`id` INT(10) UNSIGNED NULL AUTO_INCREMENT,
`setlist` SET('option_a', 'option_b') NULL DEFAULT NULL,
PRIMARY KEY (`id`)
)
ENGINE=InnoDB;
插入例如:
INSERT INTO `table` (`id`, `setlist`) VALUES (1, 'option_b');
類似的更新例如:
UPDATE `table`
SET `setlist` = 'option_a,option_b'
WHERE `id` = 1
LIMIT 1
這一切!
大「PS」,謝謝。如果我想禁用某些選項?例如,做一個切換:如果開啓,設置關閉,如果關閉,則設置爲開啓。 –
哦,那麼你可以將'IF'擴展爲'SWITCH'或者多個'IF ELSE IF ELSE'(安靜查殺和難以維護) – ajreal
MySQL沒有本地方法可以解決這個問題嗎?看起來類型「set」是無模式的。 –