сравнить две строки из одного столбца sqlite

#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)