Hi, Michael!
> Really? In 4.0? In which character set is '' equivalent to '%' to LIKE?
Thank you for the advertence, I was just going to figure it out:)
You are right, I haven't should asked to show me the collation.
Still I'd like to the see the value of character_set system variable.
> So? 5.0.12 is not for production. It's still beta, which makes it
Yes, for a pity it is still a beta, however, our common desire is to see
it as a production ready. And nobody thwarts the person to check
the problem on the latest release, as I usually suggest :).
Thank you one more time, I'll be careful.
Michael Stassen <[EMAIL PROTECTED]> wrote:
> [EMAIL PROTECTED] wrote:
> > Hi all,
> >
> > I've got a question. We were testing something on our mysql server (
> > 4.0.21) with MyISAM tables.
> >
> > When we executed the query "select * from people where name like '';" we
> > expected the same results as "select * from people where name='';" but it
> > didn't.
>
> Your expectation was correct.
>
> > The like function returned everything instead of only the people without a
> > name. Is this known (and correct) behaviour? It does not sound logical to
> > me. I couldn't find anything about it on the mysql website.
>
> You didn't find it on the mysql site because that shouldn't happen.
>
> > Thanks in advance!
> >
> > With regards,
> >
> > Casper Gondelach
>
> Gleb Paharenko wrote:
>> Hello.
>>
>> I was unable to repeat this situation on my MySQL 5.0.12. See:
>
> So? 5.0.12 is not for production. It's still beta, which makes it
> unsuitable as a reference for correctness, I think. You ought to compare to
> the latest stable version, 4.0.26 or 4.1.14. I know you like to encourage
> people to upgrade to the latest version whenever possible, but you ought to
> make sure the version is relevant first. If it isn't, upgrading won't help.
>
> <snip>
>> Check if this issue exists on the latest release (4.1.14 now). In my
>> opinion, this problem might be related to character sets.
>
> Really? In 4.0? In which character set is '' equivalent to '%' to LIKE?
>
> Let's test to see if the version is the problem:
>
> mysql> SELECT VERSION();
> +-----------+
> | VERSION() |
> +-----------+
> | 4.0.21 |
> +-----------+
> 1 row in set (0.00 sec)
>
> mysql> CREATE TABLE lt (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
> name CHAR(8), INDEX (name));
> Query OK, 0 rows affected (0.16 sec)
>
> mysql> INSERT INTO lt (name)
> VALUES ('apple'), ('orange'), ('plum'), ('pear'), ('cherry'), ('');
> Query OK, 6 rows affected (0.00 sec)
> Records: 6 Duplicates: 0 Warnings: 0
>
> mysql> SELECT * FROM lt WHERE name LIKE 'p%';
> +----+------+
> | id | name |
> +----+------+
> | 4 | pear |
> | 3 | plum |
> +----+------+
> 2 rows in set (0.00 sec)
>
> mysql> SELECT * FROM lt WHERE name LIKE '';
> +----+------+
> | id | name |
> +----+------+
> | 6 | |
> +----+------+
> 1 row in set (0.02 sec)
>
> My conclusion is that this works in my copy of 4.0.21 (the OP's version), at
> least for this simple test. I've tried with and without the index on name,
> with and without the existence of an empty name row. All work as expected.
>
> Casper, you've told us you have 4.0.21. Is it an official binary from
> MySQL, or something else? What platform is it on? As Gleb suggests, what
> is the output of
>
> SHOW CREATE TABLE people;
>
> Is
>
> select * from people where name like '';
>
> the exact query you used, or is this a simplification of the real query? If
> the latter, what's the real query? What is the definition of table
> people? Can you show us a few rows of output from your query?
>
> Michael
>
--
For technical support contracts, goto https://order.mysql.com/?ref=ensita
This email is sponsored by Ensita.NET http://www.ensita.net/
__ ___ ___ ____ __
/ |/ /_ __/ __/ __ \/ / Gleb Paharenko
/ /|_/ / // /\ \/ /_/ / /__ [EMAIL PROTECTED]
/_/ /_/\_, /___/\___\_\___/ MySQL AB / Ensita.NET
<___/ www.mysql.com
--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]