Re(2): Queries. Question to all
Ruslan Zasukhin
sunshine at public.kherson.ua
Wed Jun 30 14:21:34 CDT 2004
On 6/30/04 1:49 PM, "Peter Knobloch" <peter.knobloch at absus.at> wrote:
>> I am not sure about mySQL
> "LIKE" is case insensitive, "LIKE BINARY" case sensitve
>
> http://dev.mysql.com/doc/mysql/en/String_comparison_functions.html#IDX1312
Also note, Valentina 1.x in LIKE use actually REGEX.
In Valentina 1.x you can do case insensitive LIKE using
WHRE fld LIKE 'something' no_case
^^^^^^
Yes, this is non standard way, but works.
It is not worse of BINARY -- also non standard way.
>> To get case-insensetive search you should create virtual field
>> (BaseObject method) fldLwr with formula "fld"
> Good to hear that thats the official way: it's what I'm doing. But I
> assume this doubles the size for the fields PLUS the index as well (if I
> have an index on both fields).
But you should to have 2 indexes for a field if you want do both
case-sensitive and case-insensitive searches or sorting.
Just think about this.
2 indexes will differ in the order of records!!!
And note, you can buld only one index!
You can index or field, or methd, or both. Up to your choice.
>> For several years nobody have complain that Valentina do on default
>> case-sensetive search. What you think guys ? Should we change this in
>> 2.0 ? I think no.
> How about an additional flag to give the developer the option if the
> index should be case sensitive?
YES! Valentina 2.0 will have such flag for string fields.
It simplify work in this area. compare:
----------------------
Valentina 1.x:
fld NOT INDEXED
fldLwr method = "lower(fld)" INDEXED
Now we have one field on disk.
Now we have one virtual field.
And we have One index on disk.
But now developer MUST do one more step.
when he prepare SQL query, the string constant already should
be in lower case:
WHERE fldLwr = 'sgdg' good
WHERE fldLwr = 'sGDg' wrong
----------------------
Valentina 2.0:
fld INDEXED and CASE-INSENSITIVE
Let is all. Valentina will keep index for this field in lower case.
Developer may even give string constant in any case
WHERE fld = 'sGDg' okay, Valentina self will make it lower.
--
Best regards,
Ruslan Zasukhin [ I feel the need...the need for speed ]
-------------------------------------------------------------
e-mail: ruslan at paradigmasoft.com
web: http://www.paradigmasoft.com
To subscribe to the Valentina mail list go to:
http://lists.macserve.net/mailman/listinfo/valentina
-------------------------------------------------------------
More information about the Valentina
mailing list