Subject | CONTAINIG vs. LIKE |
---|---|
Author | Aldo Caruso |
Post date | 2014-08-04T14:42:26Z |
Hello,
I have three questions relating CONTAINING predicate.
In "The Firebird Book" I read on page 318 that indexes are used
also on search conditions against CONTAING predicates. I did some test
and, inspecting its PLAN, I found that it uses NATURAL order instead of
using an index.
1) ¿ Under which circumstances an index is used when the search has a
CONTAINING condition ?
Given the following two SQL clauses
SELECT * FROM TABLE1 WHERE UPPER(FIELD1) LIKE '%TEST%'
SELECT * FROM TABLE1 WHERE FIELD1 CONTAINING 'TEST'
2) Are they logically equivalent ?
3) Which of them is faster ?
Thanks in advance.
Aldo Caruso
I have three questions relating CONTAINING predicate.
In "The Firebird Book" I read on page 318 that indexes are used
also on search conditions against CONTAING predicates. I did some test
and, inspecting its PLAN, I found that it uses NATURAL order instead of
using an index.
1) ¿ Under which circumstances an index is used when the search has a
CONTAINING condition ?
Given the following two SQL clauses
SELECT * FROM TABLE1 WHERE UPPER(FIELD1) LIKE '%TEST%'
SELECT * FROM TABLE1 WHERE FIELD1 CONTAINING 'TEST'
2) Are they logically equivalent ?
3) Which of them is faster ?
Thanks in advance.
Aldo Caruso