PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

PostgreSQL Обратно LIKE

Вашият прост случай може да бъде решен с проста заявка с помощта на ANY конструкция и ~* :

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

~* е оператор за съвпадение на регулярен израз без значение за малките букви. Използвам това вместо ILIKE така че можем да използваме оригинални думи във вашия низ, без да е необходимо да добавяме % за ILIKE . Резултатът е същият - с изключение на думите, съдържащи специални знаци:%_\ за ILIKE и !$()*+.:<=>?[\]^{|}- за модели на регулярни изрази. Може да се наложи да избягвате специални символи по един или друг начин, за да избегнете изненади. Ето функция за регулярни изрази:

  • Escape функция за регулярен израз или LIKE шаблони

Но имам мъчителни съмнения, че това ще е всичко, от което се нуждаете. Вижте моя коментар. Подозирам, че се нуждаете от пълнотекстово търсене със съвпадащ речник за вашия естествен език, за да предоставите полезна основа на думи...

Свързано:

  • IN срещу ANY оператор в PostgreSQL
  • Варианти на ефективността на заявката като PostgreSQL LIKE
  • Съвпадение на образец с LIKE, SIMILAR TO или регулярни изрази в 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. Как да импортирам модули или да инсталирам разширения в PostgreSQL 9.1+?

  2. Промяна на езика на системата и съобщенията за грешки в PostgreSQL

  3. Как Pi() работи в PostgreSQL

  4. Пазете PostgreSQL понякога да избира лош план за заявка

  5. PostgreSQL не използва частичен индекс