This media is not supported in your browser
VIEW IN TELEGRAM
Иногда нужно найти пары строк, которые почти совпадают — например, из-за опечатки в одной букве. Такой кейс часто встречается при поиске дублей в именах, email или товарах.
С помощью функции
levenshtein()
из расширения pg_trgm
в PostgreSQL, можно находить строки, отличающиеся ровно на 1 символ. Это удобно для очистки данных, поиска дублей и реализации "умного" поиска в интерфейсе.
-- Убедись, что pg_trgm расширение включено
CREATE EXTENSION IF NOT EXISTS pg_trgm;
-- Найдём строки из таблицы users, у которых name отличается на 1 символ
SELECT a.name AS name1, b.name AS name2
FROM users a
JOIN users b ON a.id < b.id
WHERE levenshtein(a.name, b.name) = 1;
-- Пример: найдёт пары вроде ('Anna', 'Anya') или ('John', 'Joan')
📌Больше видео
@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20🔥9❤3👎1🥰1