PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Rozmyte dopasowanie ciągu w SQL

W postgresie możesz użyć fuzzystrmatch pakiet. Zapewnia levenshtein funkcji, która zwraca odległość między dwoma tekstami, możesz następnie przeprowadzić dopasowanie rozmyte za pomocą następującego przykładowego predykatu:

where levenshtein(street_address, '123 Main Avex') <= 1

Spowoduje to dopasowanie wszystkich rekordów, ponieważ odległość między „123 Main Avex” a „123 Main Avex” wynosi 1 (1 wstawienie).

Oczywiście wartość 1 tutaj jest tylko przykład i wykona dopasowanie dość ściśle (różnica tylko o jeden znak). Powinieneś użyć większej liczby lub, co sugeruje @IVO GELOV - użyć względnej odległości (odległość podzielona przez długość).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tworzenie zrzutu bazy danych dla określonych tabel i wpisów Postgres

  2. FATAL:uwierzytelnianie hasła nie powiodło się dla użytkownika postgres (postgresql 11 z pgAdmin 4)

  3. Systemy plików Linux i testy punktów kontrolnych PostgreSQL

  4. Problem ze współbieżnością z psycopg2, Redshift i unittest

  5. Jak zapisać lub pobrać kolumnę tablicy za pomocą Hibernate?