In SqLite, LIKE works backwards. It's not case-sensitive, although it
should be.

It's far too late to change this now, it would break all manner of existing
code.

But, in more advanced engines (like PostgreSQL), LIKE is a case-sensitive
match, and ILIKE is a case insensitive match.

I suggest that, rather than putting in ILIKE as a case-INsensive match and
thereby making even more of a mess, that SqLite implement:

SIM and ISIM

Where SIM is case-sensitive, and ISIM is not. So users can write better,
saner queries.

Or, if that's not in the cards, yes, please, by all means, put in an ILIKE
that does case-sensitive matching. PLEASE.

The PRAGMA is, frankly, clumsy at best. There is a non-insignificant need
to be able to do both kinds of matching in one SQL statement, and without
jumping through hoops, either:

* Proper SQL:
-------------
SELECT name FROM names WHERE trim(name) ILIKE 'ben' // case insensitive
match
SELECT name FROM names WHERE trim(name) LIKE 'Ben' // case sensitive match

* SqLite SQL:
-------------
SELECT name FROM names WHERE trim(name) LIKE 'Ben' // case INsensitive
match (backwards!)

* Suggestion:
-------------
SELECT name FROM names WHERE trim(name) LIKE 'Ben' // case INsensitive
match (backwards, remains for compatibility)
SELECT name FROM names WHERE trim(name) ISIM 'ben' // NEW case insensitive
match
SELECT name FROM names WHERE trim(name) SIM 'Ben' // NEW case sensitive
match

This is the one SQL-related fundamental shortcoming that bites me time and
time again.

Thanks for listening, I hope this will be considered, and something like
it, or exactly it, will be implemented.

Ben
fyng...@gmail.com
_______________________________________________
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to