SQLite - Replace () установлен, чтобы соответствовать целому слову, не являющемуся его частью - PullRequest
0 голосов
/ 12 апреля 2019

В столбце есть записи как US и такие записи, как USA. Я хотел бы заменить все «США» на «США». когда я пытался:

replace(table.column, 'US', 'USA')

Заменяет все записи US на США, а все записи USA - USAA.

.

Я немного искал это и нашел какое-то решение для SQL , которое также может работать на SQLite , но они предлагают использовать WHERE пункт.

Можно ли как-то просто сказать, чтобы заменить работать только над целыми словами?

Заранее спасибо за любую помощь!

Ответы [ 2 ]

0 голосов
/ 12 апреля 2019

Обычно вы можете защититься от этого, добавив пробелы вокруг поискового слова и слова для замены:

replace(' ' + table.column + ' ', ' US ', 'USA').

как то так

0 голосов
/ 12 апреля 2019

Используйте условие:

..........
replace(table.column, 'US', 'USA')
...............................
where table.column not like '%USA%'

или:

replace(replace(table.column, 'US', 'USA'), 'USAA', 'USA')

для восстановления обратно в 'США', если произошла неправильная замена.

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