"Giulio Mastrosanti" <giu...@cantoberon.it>
wrote in message
news:caf6c37d-0946-4f61-8b58-6f8e0b16c...@cantoberon.it
> search * from table where description like '%cafe%'
>
> matches the descriptions containing cafe and CAFE, but also cafè and
> CAFÈ.
>
> now on sqlite not only I can't find the way to make the search accent
> insensitive ( so cafe will not match cafè ), but it seems from test
> and from some info discovered on the web that the search using LIKE is
> case insensitive only for ascii characters ( so cafe matches CAFE but
> cafè does not match CAFÈ ).

For the simple search, you can install a custom collation - see 
http://sqlite.org/c3ref/create_collation.html. However, LIKE operator 
doesn't use collations. It uses a function named "like" 
(http://sqlite.org/lang_corefunc.html): you can install your own 
(http://sqlite.org/c3ref/create_function.html). Alternatively, if you 
can change the statement, you can write a custom function (say, 
"normalize") that would return its argument lowercased and with accents 
removed. Then you can do

search * from table where normalize(description) like '%cafe%';

See also:

http://www.sqlite.org/cvstrac/fileview?f=sqlite/ext/icu/README.txt
http://sqlite.org/optoverview.html#like_opt

Igor Tandetnik 



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

Reply via email to