Удалить конечный период в sqlite - PullRequest
0 голосов
/ 01 ноября 2019

У меня есть несколько адресов электронной почты в базе данных sqlite. Некоторые из них заканчиваются точкой. Я выполнил запрос на выборку, используя REGEXP для таргетинга этих писем. Как я могу удалить завершающий период. Ниже мой запрос на выборку показывает мои электронные письма, заканчивающиеся периодами, в которых он находил электронные письма.

Снимок

select *
from links
where email REGEXP '\.$'

Я пытался использовать запрос на обновление с TRIM, но могне работает правильно

UPDATE links
SET email = trim('email','.');

Когда я запускаю это, я получаю следующую ошибку:

Result: UNIQUE constraint failed: links.email
At line 1:
UPDATE links
SET email = trim('email','.');

1 Ответ

0 голосов
/ 01 ноября 2019

Если в вашем письме есть несколько предложений, каждое из которых заканчивается точкой, и

вариант 1 - вы хотите избавиться только от последнего периода, вы можете использовать что-то вроде следующего. Если после последнего периода есть пробелы, сначала используйте rtrim ().

select  substr(a.email, 0, length(email))
from (select 'This is some email. I want to delete the last period.' email)
a

, вариант 2 - вы хотите избавиться от всех вхождений периода, используйте replace (), например,

select  replace(a.email, '.', '')
from (select 'This is some email. I want to delete the last period.' email)
a

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