#sql #sqlite
#sql #sqlite
Вопрос:
Я хочу обновить столбец из таблицы sqlite на 1, если предыдущая строка из столбца равна следующей строке из того же столбца.
Exemple:
first_column | second_column
----------------------------
a | 0
a | 1
b | 0
c | 0
c | 1
Мой код:
UPDATE FROM my_table
SET second_column=1
WHERE first_column=first_column-1
Комментарии:
1. Не существует такой вещи, как предыдущая или следующая строка, если нет столбца, который задает порядок строк. Итак, есть ли столбец, подобный
id
илиdatetime
?
Ответ №1:
Есть ли у этой таблицы первичный ключ? Если нет, то вы можете создать таблицу, подобную:
create table new (colPK INTEGER PRIMARY KEY AUTOINCREMENT, first_column, second_column);
Затем в вашем обновлении SQL вы можете использовать столбец use colPK для ссылки на номер строки.
UPDATE FROM my_table tab1
SET tab1.second_column=1
WHERE tab1.first_column = ( SELECT tab2.first_column FROM my_table tab2 WHERE tab2.colPK-1 = tab1.colPK)