Hi there,

I am running MySQL 4.1 on Linux.
I have some problems sorting records with german umlauts.

MySQL is configured to have character set "UTF8" as default.
I have created a table like this:

CREATE TABLE tblmembers (
  memberid int(11) NOT NULL auto_increment,
  lastname varchar(255) NOT NULL default '',
  location varchar(255) default NULL,
  PRIMARY KEY  (memberid)
) ENGINE=MyISAM DEFAULT CHARSET=utf8

The, I have inserted some records:
INSERT INTO tblmembers (lastname,location) VALUES ('Ober','Germany');
INSERT INTO tblmembers (lastname,location) VALUES ('Ohm','Germany');
INSERT INTO tblmembers (lastname,location) VALUES ('Öhlz','Germany');
INSERT INTO tblmembers (lastname,location) VALUES ('Öder','Germany');
INSERT INTO tblmembers (lastname,location) VALUES ('Ower','Germany');

Now, I would like get all members whose lastname starts with 'O' (and also with umlaut 'Ö') sorted by lastname according to german sorting rules, so my SQL query reads like this:

I tried:
SELECT *
  FROM tblmembers
  WHERE lastname LIKE 'O%' OR lastname LIKE 'Ö%'

The result reads like this:
Ober
Ohm
Ower

Do I need to covert the 'Ö%' somehow so the records starting with 'Ö' are also found?


Example 1:
SELECT *
  FROM tblmembers
  ORDER BY lastname

returns:
Öhlz
Öder
Ober
Ohm
Ower

..which is wrong according to german sorting rules.


Example 2:
SELECT *
  FROM tblmembers
  ORDER BY lastname
  COLLATE utf8_general_ci

returns:
Öhlz
Öder
Ober
Ohm
Ower

The proper sorting order according to german sorting rules is:
Ober
Öder
Ohm
Öhlz
Ower


Any idea how I can sort the results proper?

Nico

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

Reply via email to