0

number我有一个包含varchar2数据类型列的表。

我的表

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 列中搜索一个字符串并从表中获取行。

目前,如果它与字符串 impl 匹配,我有以下 sql 用于获取行

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

我想有没有更好的方法来实现结果。

任何帮助都是非常可观的。

4

2 回答 2

1

我总是更喜欢在这种情况下实现全文搜索(FTS) 。google 全文搜索。使用 FTS,您将获得比当前实施更快的结果

于 2013-10-10T05:35:17.393 回答
0

这很简单:

SELECT *
  FROM myTable
 WHERE lower (project_text1 || project_text2 || project_text3 ||
              project_text4 || project_text5 || project_text6 ||
              project_text7) LIKE lower('%impl%');
于 2013-10-10T12:58:32.113 回答