Я пытаюсь перейти с MySQL на SQLIte3 и столкнулся с проблемой обновления. Я использую SQLite 3.6.20 на Redhat.
Моя первая строка кода ведет себя нормально
update atv_covar set noncomp= 2;
Все значения для некомпиляции (в крайнем правом столбце) соответственно установлены на 2.
select * from atv_covar;
A5202|S182|2
A5202|S183|2
A5202|S184|2
Это вторая строка кода, которая доставляет мне проблемы:
update atv_covar
set noncomp= (select 1 from f4003 where
atv_covar.study = f4003.study and
atv_covar.rpid = f4003.rpid and
(rsoffrx="81" or rsoffrx="77"));
Он работает без генерации ошибок и соответствующим образом устанавливает atv_covar.noncomp равным 1, где он соответствует оператору SELECT. Проблема состоит в том, что он изменяет atv_covar.noncomp для несоответствующих строк на ноль, где я хочу, чтобы они оставляли их равными 2.
select * from atv_covar;
A5202|S182|
A5202|S183|1
A5202|S184|
Любая помощь будет приветствоваться.