...snip...

>
> LIKE operators cannot use indices unless the index is case
> insensitive.  Use GLOB for case sensitive fields.
>

Richard - i'm not sure i understand "unless the index is case insensitive."
How does that relate to:

sqlite> create table t (a varchar(10) primary key, b, c);
sqlite> pragma CASE_SENSITIVE_LIKE=OFF;
sqlite> explain query plan select * from t where a like 'a%';
0|0|TABLE t
sqlite> pragma CASE_SENSITIVE_LIKE=ON;
sqlite> explain query plan select * from t where a like 'a%';
0|0|TABLE t WITH INDEX sqlite_autoindex_t_1
sqlite>

Dumb question:  Is CASE_SENSITIVE_LIKE a different concept
from "case sensitive index"?

> LIKE and GLOB operators cannot use indices if the pattern
> begins with a wildcard.
>
> Nothing in SQLite will use an index if you are connecting
> terms using OR.
>
> It looks like what you really want to use here is a full-text
> index.  Please read about the FTS3 support in SQLite.  That
> seems to be what you are trying to accomplish.
>
> --
> D. Richard Hipp <[EMAIL PROTECTED]>
>

Thanks,
Mark
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to