2013-10-10 4 views
0

У меня есть таблица, которая содержит number и varchar2 столбцы типа данных.Строка поиска во всех столбцах varchar2

MYTABLE

project_id - number 
project_ldr - number 
project_text1 - varchar2 
project_text2 - varchar2 
project_text3 - varchar2 
project_text4 - varchar2 
project_text5 - varchar2 
project_text6 - varchar2 
project_text7 - varchar2 

Я хотел бы искать строку во всех столбцах VARCHAR2 и выборки строк из таблицы.

В настоящее время у меня есть следующий SQL для получения строки, если она соответствует строке осущ

select * from myTable where lower(project_text1) like lower('%impl%') or 
lower(project_text2) like lower('%impl%')... (all other varchar2 columns) 

Я хотел бы есть какие-либо более эффективные способы достижения результатов.

Любая помощь очень заметна.

ответ

1

Я всегда предпочитаю внедрять Полный текст поиска (FTS) в таких сценариях. google для полнотекстового поиска. вы получите быстрый результат с FTS, чем текущая реализация

0

Это довольно просто:

SELECT * 
    FROM myTable 
WHERE lower (project_text1 || project_text2 || project_text3 || 
       project_text4 || project_text5 || project_text6 || 
       project_text7) LIKE lower('%impl%'); 
Смежные вопросы