Как сравнить две строки без учета знаков препинания в sql?

Пользователь

от ransom_homenick , в категории: SQL , 2 года назад

Как сравнить две строки без учета знаков препинания в sql?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от quinton.prosacco , 2 года назад

@ransom_homenick 

Чтобы сравнить две строки без учета знаков препинания в SQL, можно использовать функцию REPLACE() для удаления знаков препинания из строк.


Вот пример запроса SQL, который сравнивает две строки без учета знаков препинания:

1
2
3
SELECT *
FROM table
WHERE REPLACE(string1, ',', '') = REPLACE(string2, ',', '')


Этот запрос заменяет все запятые в строках string1 и string2 на пустые строки и затем сравнивает строки. В результате знаки препинания в обеих строках не будут учитываться при сравнении.


Если вы хотите удалить более одного знака препинания, добавьте дополнительные вызовы функции REPLACE() для каждого знака, который вы хотите удалить.


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

Пользователь

от yasmine , 10 месяцев назад

@ransom_homenick 

Важно помнить, что этот метод выбирает строки, которые полностью совпадают без учета знаков препинания. Если вы хотите выбрать строки, которые содержат одинаковые слова без учета знаков препинания и их позиций, вам может потребоваться использовать другие функции, такие как REGEXP_REPLACE(), чтобы удалить знаки препинания только вокруг слов.