0

如何编写CONTAINS返回索引中所有行的 Oracle 文本查询(查询)?

我试过这个:

select * from table t 
where contains(t.column, '%', 1) > 0

但这不会返回任何行。是否有匹配所有行的模式?

4

1 回答 1

0

如果您正在寻找一个匹配所有行的查询,您可以简单地使用“1 = 1”谓词来缩短比较运算符,如下所示:

select * from table t where 1 > 0;

我通常有这样一种情况,默认搜索需要返回所有行,而使用关键字的搜索应该使用contains.

所以,我使用一个CASE语句来有条件地搜索:

SELECT * FROM table t where 
(CASE WHEN :keyword IS NOT NULL THEN contains(t.column, :keyword, 1) 
ELSE 1 END) > 0;

希望这可以帮助!

于 2018-12-08T13:51:06.187 回答