Не выполняется битовая операция "И" на обновлении "UPDATE" таблицы

Setor

Новичок
Не выполняется битовая операция "И" на обновлении "UPDATE" таблицы

В таблице есть поле, значение которого является некой битовой комбинацией (набор флагов). Иногда нужно производить над этими флагами операции (снятие/установку) и на одной из операций я столкнулся с проблемой - запрос, который к примеру, должен снять два крайних бита выполняется без ошибок, но данные не изменяет (MySQL 4.1):

UPDATE `my_table` SET `my_flags` = `my_flags` & ~3 WHERE `my_id` IN (1, 2, 3, 4 )

если же в эту операцию подставить не текущее значение поля, а константу, и заключить выражение в кавычки, запрос выполнится и данные изменятся: UPDATE `my_table` SET `my_flags` = '5 & ~3' WHERE `my_id` IN (1, 2, 3, 4 )

другие же аналогичные запросы работают без проблем, например: UPDATE `my_table` SET `my_flags` = `my_flags` | 3 WHERE `my_id` IN (1, 2, 3, 4 )

Это очень важное обновление для данного приложения. Обновляются тысячи строк и недопустимо на каждое обновление делать по одному запросу. Обратные кавычки в имени поля на запрос не влияют.

-~{}~ 25.06.06 04:27:

А блин, извиняюсь, всё работает. Эти флаги MySQL не обновлял, т.к. они уже были в нужном положении.

Вопрос закрыт.
 
Сверху