Как удалить часть строки в SQLite, основываясь на обнаружении символа новой строки? - PullRequest
0 голосов
/ 26 марта 2019

Мне нужна помощь в построении SQL-запроса, который даст следующий результат:

У меня есть таблица group_message

Для всех строк, где столбец parent_id поляотличаются от 0

влияют на каждое соответствующее поле в столбце content

, удаляя весь текст перед первым знаком новой строки, который вы найдете, и сохраняйте оставшийся текст (которыйможет содержать другие символы новой строки).

(Большинство моих полей content содержат нежелательный заголовочный элемент в первой строке текста, от которого я хотел бы избавиться, и вво всех случаях после той части, которую я хочу пропустить, появляется символ новой строки.

  • parent_id - это INTEGER
  • content - это BLOB, но все поля на самом деле являются текстовымитолько
  • Существует общий столбец id, который может помочь с WHERE операторами
  • SQLite 3.27.1

У меня 19,7 тыс. строк в этой таблицеиз которых 16.4к должны быть затронуты

1 Ответ

0 голосов
/ 26 марта 2019

Обновите, назначив content подстроку, начинающуюся после новой строки char:

update group_message 
set content = substr(content, instr(content, char(10)) + 1)
where 
  parent_id <> 0
  and 
  content like '%' || char(10) || '%'

Если вы хотите сохранить эту первую новую строку символов и удалить только текст перед ней, то удалите+1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...