lower's probably faster, since most characters are lower already.
Lincoln Yeoh wrote:
> At 12:33 AM 6/23/2003 -0500, nolan@celery.tssi.com wrote:
>
>> >
>> > Oh, you mean like "SELECT * FROM table WHERE field ~* 'nolan';"?
>>
>> No, I mean as in "SELECT * FROM table WHERE field = 'nolan';"
>>
>> That will match values with any combination of upper and lower case
>> letters that fold to 'nolan': 'Nolan', 'NOLAN', etc.
>
>
> For me that's a matter of taste. I prefer to use = for case sensitive
> and lower(field)=lower('data') for case insensitive. I wonder if there
> is a difference between using lower vs upper for case insensitivity but
> I've never bothered to look deeply into it.
>
>
>> Also, unlike PostgreSQL (at least in 7.3), if you define an index on
>> the column, mysql appears to use it for LIKE queries.
>>
>> "SELECT * FROM table WHERE field LIKE 'nolan%';"
>>
>> is very fast in mysql but not in 7.3, and even non-anchored LIKE searches
>> in mysql appear to be using the index.
>
>
> The versions of Postgresql I've used since I can remember (e.g. at least
> v6.5.3 some years ago) use indexes for anchored LIKE searches.
>
> I vaguely recall some people having this "not using index" behaviour
> when they are using various locales.
>
>
>> "SELECT * FROM table WHERE field LIKE '%nolan%';"
>>
>> executes considerably faster with an index on field than without one.
>
>
> I think MySQL wins in this one. Just wondering how they do it. And
> whether it's a good idea to do it that way.
>
> Regards,
> Link.
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org
>