Как заменить дублирующиеся текстовые значения в MySQL? - PullRequest
0 голосов
/ 05 марта 2020

Я ищу некоторую помощь, чтобы заменить дублирующиеся текстовые значения, которые я нашел в одном из моих столбцов. Когда я запускаю следующий код, чтобы дать мне отдельный список для Data_File 'Sme', я получаю такой результат:

SELECT DISTINCT Data_Source from master_table WHERE Data_File LIKE '%Sme%';

Выход

Data_File
Sme
Sme
Sme

Затем я запустил следующий запрос на обновление замените их все:

UPDATE master_table SET Data_File = REPLACE(Data_File, 'Sme', 'SME') WHERE Data_File LIKE '%Sme%';

Это соответствует всем строкам и заменяет их все, но когда я запускаю свой исходный запрос, я ожидал получить только 1 значение, но получаю следующее:

SELECT DISTINCT Data_Source from master_table WHERE Data_File LIKE '%SME%';

Вывод

Data_File
SME
SME
SME

Не уверен, где я иду не так, как я думал, что это дало бы мне 1 значение и устранило бы дубликаты.

Любой совет был бы действительно признателен.

1 Ответ

1 голос
/ 05 марта 2020

Я мог бы воспроизвести упомянутый вами случай, добавив символы пробела в значения столбца. Я также могу видеть дубликаты только в этом случае, а в противном случае нет.

Проблема в том, что когда вы заменяете запрос, вы просто заменяете один шаблон другим шаблоном, а все остальные символы остаются без изменений. Если бы вы могли также вывести длину значений столбцов, вы должны найти разницу там.

В запросе выбора вы можете попытаться использовать функцию trim () после отдельного предложения. Это должно дать вам ожидаемый результат.

...