On Tue, 4 Mar 2003, Fabian Schmidt wrote:
> >Description:
> A select returns uncomplete results, when querying an indexed
> varchar row with latin1_de character set and strings containing umlauts
> or '�'.
>
> >How-To-Repeat:
>
> start MySQL 4.0 with character set latin1_de.
>
> create table test (word varchar(255) not null default '', index(word));
> insert into test values ('ss'),('�'),('�'),('ae');
> select * from test where word='ss';
> +------+
> | ss |
> | � |
> +------+
> -> looks fine.
>
> select * from test where word='�';
> +------+
> | ss |
> +------+
I would expect that it returns '�' as a result as well.
> select * from test where word='�';
> +------+
> | ae |
> +------+
> -> is what you least expect.
I can reproduce this on 4.0.10-gamma-debug-log
> To get even more confused, the result is changing:
>
> select * from test where word like 'ae';
> -- ae
> select * from test where word='�';
> -- ae, �
> select * from test where word='ae';
> -- ae, �
> select * from test where word='�';
> -- ae
I could not reproduce this behaviour on 4.0.10; got both results;
however, when � and ae are equivalent, is this really a problem? Some
texts do substitute ae for � and I want to have a hit searching for '�'.
but look at this:
mysql> select * from test where word like 'ae';
Empty set (0.00 sec)
Some words like "Tetraeder" have the combination 'ae' and should be found
looking for LIKE '%ae%'; surprisingly this works:
mysql> insert into test values ('Tetraeder');
Query OK, 1 row affected (0.00 sec)
mysql> select * from test where word like '%ae%';
*************************** 1. row ***************************
word: ae
*************************** 2. row ***************************
word: Tetraeder
2 rows in set (0.00 sec)
Whenever there is a joker it works:
mysql> select * from test where word like '%ae';
*************************** 1. row ***************************
word: ae
1 row in set (0.00 sec)
mysql> select * from test where word like 'ae%';
*************************** 1. row ***************************
word: ae
1 row in set (0.00 sec)
but this does not:
mysql> select * from test where word like 'ae';
Empty set (0.00 sec)
Regards,
Thomas Spahni
---------------------------------------------------------------------
Before posting, please check:
http://www.mysql.com/manual.php (the manual)
http://lists.mysql.com/ (the list archive)
To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php