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

PostgreSQL Reverse LIKE

Twój prosty przypadek można rozwiązać za pomocą prostego zapytania za pomocą ANY konstrukcja i ~* :

SELECT *
FROM   tbl
WHERE  col ~* ANY (string_to_array('The ships hung in the sky ... bricks don’t', ' '));

~* jest operatorem dopasowania wyrażenia regularnego bez uwzględniania wielkości liter. Używam tego zamiast ILIKE dzięki czemu możemy użyć oryginalnych słów w Twoim ciągu bez konieczności dopełniania % dla ILIKE . Wynik jest taki sam - z wyjątkiem słów zawierających znaki specjalne:%_\ dla ILIKE i !$()*+.:<=>?[\]^{|}- dla wzorców wyrażeń regularnych. Być może będziesz musiał uciec przed postaciami specjalnymi, aby uniknąć niespodzianek. Oto funkcja dla wyrażeń regularnych:

  • Funkcja wyjścia dla wyrażeń regularnych lub wzorców LIKE

Ale mam dokuczliwe wątpliwości, że to wszystko, czego potrzebujesz. Zobacz mój komentarz. Podejrzewam, że potrzebujesz wyszukiwania pełnotekstowego z dopasowanym słownikiem dla twojego języka naturalnego, aby zapewnić przydatne rdzenne słowa ...

Powiązane:

  • IN kontra ANY operator w PostgreSQL
  • Odmiany wydajności zapytań PostgreSQL LIKE
  • Dopasowywanie wzorców za pomocą LIKE, SIMILAR TO lub wyrażeń regularnych w PostgreSQL


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak się dowiedzieć, która partycja będzie używana w partycjonowaniu mieszającym Postgresa?

  2. PgBouncer 1.7 – „Kolory różnią się po zmartwychwstaniu”

  3. Używanie złączeń do łączenia danych z różnych tabel w PostgreSQL

  4. Dlaczego PostgreSQL nie zwraca wartości null, gdy warunek jest <> prawdziwy?

  5. HikariCP - połączenie nie jest dostępne