如何编写CONTAINS
返回索引中所有行的 Oracle 文本查询(查询)?
我试过这个:
select * from table t
where contains(t.column, '%', 1) > 0
但这不会返回任何行。是否有匹配所有行的模式?
如何编写CONTAINS
返回索引中所有行的 Oracle 文本查询(查询)?
我试过这个:
select * from table t
where contains(t.column, '%', 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;
希望这可以帮助!