Hi!

On Mar 05, Rikard Bogren wrote:
> I have a problem with index on a UTF-8 based db/table and mySQL 4.1 (I have
> tried 5.0 too).
> I run the mysqld with the --default-character-set=utf8 flag and I'm
> certain that it's UTF-8 data that I'm putting into the database.
> To reproduce, follow these simple steps.
> 
> #-----------------------------------
> CREATE DATABASE `database` DEFAULT CHARACTER SET utf8;
> 
> CREATE TABLE `table` (
> `id` VARCHAR( 10 ) NOT NULL ,
> `name` VARCHAR( 10 ) NOT NULL
> ) CHARACTER SET = utf8;
> 
> ALTER TABLE `table` ADD INDEX ( `name` )
> 
> INSERT INTO `table` ( `id` , `name` )
> VALUES (
> '1', 'Rene'
> );
> 
> INSERT INTO `table` ( `id` , `name` )
> VALUES (
> '2', 'Ren?'

Don't mind question mark, I know what was there and I used the proper
character what I tested it :)

> );
> 
> 
> # Now make some queries...
> 
> 
> SELECT *
> FROM `table`
> WHERE `name` = 'Rene';
> 
> SELECT *
> FROM `table`
> WHERE `name` = 'Ren?';
> 
> # These previous two lines work equally, which I reckon is wrong.

This is how utf8_general_ci collation in MySQL is defined.
In 4.1.2 or 4.1.3 we'll support more unicode collations,
so you'll be able to chose how accents should be treated.

> SELECT *
> FROM `table`
> WHERE `name` LIKE 'Rene';
> 
> # Seems to work correctly.
> 
> SELECT *
> FROM `table`
> WHERE `name` LIKE 'Ren?';
> 
> # This previous line gives no result, and I've understood it is because of
> how "Rene" and "Ren?" are somehow treated as equal.

Works for me - returns 'Ren?'
Apparently it's fixed already in 4.1.2 (to be out soon)
 
Regards,
Sergei

-- 
   __  ___     ___ ____  __
  /  |/  /_ __/ __/ __ \/ /   Sergei Golubchik <[EMAIL PROTECTED]>
 / /|_/ / // /\ \/ /_/ / /__  MySQL AB, Senior Software Developer
/_/  /_/\_, /___/\___\_\___/  Osnabrueck, Germany
       <___/  www.mysql.com

-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to