Главная страница


ru.linux

 
 - RU.LINUX ---------------------------------------------------------------------
 From : Eugeny Balakhonov                    2:5020/3240.50 21 Sep 2002  02:17:03
 To : All
 Subject : Postgres и регулярные выражения
 -------------------------------------------------------------------------------- 
 
 
 
 Понадобилось мне устроить поиск по словам в поле таблицы типа varchar.
 Причем LIKE явно мне не подоходит, а нужны регулярные выражения. С
 удовлетворением нашел в документации к PostgreSQL 7.2, что таковые во всю
 поддерживаются. Ура! Hу думаю щас как напишу, да как заработает... Ага.. Аж два 
 раза...
 
 Итак имеем таблицу
 
 CREATE TABLE T (TITLE VARCHAR(256), MSGBODY TEXT);
 
 INSERT INTO T VALUES ('Test message 1', 'Body of test message 1');
 INSERT INTO T VALUES ('Test message 2', 'Body of test message 2');
 INSERT INTO T VALUES ('Test message 3', 'Body of test message 3');
 
 Пробуем как в примере в документации
 
 SELECT * FROM T WHERE MSGBODY ~* '.*test.*';
 
 Работает.
 
 SELECT * FROM T WHERE MSGBODY ~* '.*test message.*';
 
 работает
 
 SELECT * FROM T WHERE MSGBODY ~* '.*test\smessage.*';
 SELECT * FROM T WHERE MSGBODY ~* '.*test\s*message.*';
 SELECT * FROM T WHERE MSGBODY ~* '.*test\s+message.*';
 SELECT * FROM T WHERE MSGBODY ~* '.*test\s?message.*';
 SELECT * FROM T WHERE MSGBODY ~* '.*test(\s?)message.*';
 
 ....
 
 Фиг вам.
 
 SELECT * FROM T WHERE MSGBODY ~* '.*message \d+';
 
 фиг вам
 
 И как это называется?
 Что не так делаю. Hе могут же быть такие откровенные глюки! Поддержку RE ведь не
 вчера в Postgres добавили!
 
 Best regards,
               Eugeny
 
  E-mail: c0ff75@mail.ru              ICQ: 5456961
 
 P.S. Может кто знает другой способ устроить полнотекстовые поиск в базе
 Postgres?
 
 --- GoldED+ 1.1.4.5 (WinNT 5.1.2600-Service_Pack_1 i686)
  * Origin: Собака с милицией обещала придти! (2:5020/3240.50)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Postgres и регулярные выражения   Eugeny Balakhonov   21 Sep 2002 02:17:03 
Архивное /ru.linux/256153d8ba023.html, оценка 3 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional