我有一个包含number
和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用于获取行,如果它匹配字符串impl
select * from myTable where lower(project_text1) like lower('%impl%') or
lower(project_text2) like lower('%impl%')... (all other varchar2 columns)
我希望有更好的方法来实现结果。
任何帮助都非常值得赞赏。
答案 0 :(得分:1)
我总是喜欢在这种情况下实施全文搜索(FTS)。 谷歌搜索全文。 使用FTS可以获得比当前实现更快的结果
答案 1 :(得分:0)
这很简单:
SELECT *
FROM myTable
WHERE lower (project_text1 || project_text2 || project_text3 ||
project_text4 || project_text5 || project_text6 ||
project_text7) LIKE lower('%impl%');