У меня есть столбец с именем settings
(type: tinyint unsigned not null).MySQL, несколько операций BIT в одном столбце
Это содержит пользовательские настройки в битах (0/1).
Например, когда я хочу обновить setting_1 тогда я сделать:
UPDATE `users` SET `settings`=`settings`|1
(Это устанавливает SETTING1 1 (истина)).
Но, как я могу сделать несколько обновлений одной колонки? Например:
UPDATE `users`
SET
`settings`=`settings`|1,
`settings`=`settings`&~2,
`settings`=`settings`|4
WHERE `user`='xyz';
Любые ссылки, которые объясняют это?
У меня есть другой вопрос. Порядок операций имеет значение? Например: & ~ 1 | 2 & ~ 4 vs & ~ 1 & ~ 4 | 2 Я тестировал то же самое на PHP, и для этой операции у меня были разные результаты. https://eval.in/622933 – KsaR