Предполагая, что все эти столбцы находятся в одной таблице:
update some_table
set field1=field1_spanish,
field2=field2_spanish
where field1_spanish is not null
and field2_spanish is not null;
Если field1
и field2
в table
, а столбцы *_spanish
в table_spanish
, то ... ну, SQLite не поддерживает предложение from
в update
оператор , так что вам придется выполнить коррелированный подзапрос. Предполагая, что table
имеет первичный ключ id
, на который ссылается table_spanish
, вы можете сделать:
update table a
set field1=(select s.field1_spanish
from table_spanish s
where field1_spanish is not null
and s.id=a.id),
field2=(select s.field2_spanish
from table_spanish s
where field2_spanish is not null
and s.id=a.id);
Или вы можете заполнить промежуточную таблицу с помощью объединения, а затем удалить соответствующие записи из table
и вставить новые данные из промежуточной таблицы (обязательно используйте транзакцию для всего этого!).
Шляпный наконечник Мартину Клейтону для второго подхода.