set names latin1; set @@collation_connection=latin1_german2_ci; select @@collation_connection; @@collation_connection latin1_german2_ci drop table if exists t1; create table t1 (a char (20) not null, b int not null auto_increment, index (a,b)); insert into t1 (a) values ('ä'),('ac'),('ae'),('ad'),('Äc'),('aeb'); insert into t1 (a) values ('üc'),('uc'),('ue'),('ud'),('Ü'),('ueb'),('uf'); insert into t1 (a) values ('ö'),('oc'),('Öa'),('oe'),('od'),('Öc'),('oeb'); insert into t1 (a) values ('s'),('ss'),('ß'),('ßb'),('ssa'),('ssc'),('ßa'); insert into t1 (a) values ('eä'),('uü'),('öo'),('ää'),('ääa'),('aeae'); insert into t1 (a) values ('q'),('a'),('u'),('o'),('é'),('É'),('a'); select a,b from t1 order by a,b; a b a 1 a 2 ac 1 ad 1 ä 1 ae 2 ää 1 aeae 2 ääa 1 aeb 1 Äc 1 é 1 É 2 eä 1 o 1 oc 1 od 1 ö 1 oe 2 Öa 1 oeb 1 Öc 1 öo 1 q 1 s 1 ss 1 ß 2 ssa 1 ßa 2 ßb 1 ssc 1 u 1 uc 1 ud 1 ue 1 Ü 2 ueb 1 üc 1 uf 1 uü 1 select a,b from t1 order by upper(a),b; a b a 1 a 2 ac 1 ad 1 ä 1 ae 2 ää 1 aeae 2 ääa 1 aeb 1 Äc 1 é 1 É 2 eä 1 o 1 oc 1 od 1 ö 1 oe 2 Öa 1 oeb 1 Öc 1 öo 1 q 1 s 1 ss 1 ß 2 ssa 1 ßa 2 ßb 1 ssc 1 u 1 uc 1 ud 1 ue 1 Ü 2 ueb 1 üc 1 uf 1 uü 1 select a from t1 order by a desc; a uü uf üc ueb Ü ue ud uc u ssc ßb ßa ssa ß ss s q öo Öc oeb Öa oe ö od oc o eä É é Äc aeb ääa aeae ää ae ä ad ac a a check table t1; Table Op Msg_type Msg_text test.t1 check status OK select * from t1 where a like "ö%"; a b ö 1 Öa 1 Öc 1 öo 1 select * from t1 where a like binary "%É%"; a b É 2 select * from t1 where a like "%Á%"; a b a 1 a 2 ac 1 ad 1 ae 2 aeae 2 ääa 1 aeb 1 Öa 1 ssa 1 ßa 2 select * from t1 where a like "%U%"; a b u 1 uc 1 ud 1 ue 1 ueb 1 uf 1 uü 1 select * from t1 where a like "%ss%"; a b ss 1 ssa 1 ssc 1 drop table t1; select strcmp('ä','ae'),strcmp('ae','ä'),strcmp('aeq','äq'),strcmp('äq','aeq'); strcmp('ä','ae') strcmp('ae','ä') strcmp('aeq','äq') strcmp('äq','aeq') 0 0 0 0 select strcmp('ss','ß'),strcmp('ß','ss'),strcmp('ßs','sss'),strcmp('ßq','ssq'); strcmp('ss','ß') strcmp('ß','ss') strcmp('ßs','sss') strcmp('ßq','ssq') 0 0 0 0 select strcmp('ä','af'),strcmp('a','ä'),strcmp('ää','aeq'),strcmp('ää','aeaeq'); strcmp('ä','af') strcmp('a','ä') strcmp('ää','aeq') strcmp('ää','aeaeq') -1 -1 -1 -1 select strcmp('ss','ßa'),strcmp('ß','ssa'),strcmp('sßa','sssb'),strcmp('s','ß'); strcmp('ss','ßa') strcmp('ß','ssa') strcmp('sßa','sssb') strcmp('s','ß') -1 -1 -1 -1 select strcmp('ö','oö'),strcmp('Ü','uü'),strcmp('ö','oeb'); strcmp('ö','oö') strcmp('Ü','uü') strcmp('ö','oeb') -1 -1 -1 select strcmp('af','ä'),strcmp('ä','a'),strcmp('aeq','ää'),strcmp('aeaeq','ää'); strcmp('af','ä') strcmp('ä','a') strcmp('aeq','ää') strcmp('aeaeq','ää') 1 1 1 1 select strcmp('ßa','ss'),strcmp('ssa','ß'),strcmp('sssb','sßa'),strcmp('ß','s'); strcmp('ßa','ss') strcmp('ssa','ß') strcmp('sssb','sßa') strcmp('ß','s') 1 1 1 1 select strcmp('u','öa'),strcmp('u','ö'); strcmp('u','öa') strcmp('u','ö') 1 1 select strcmp('sä', 'ßa'), strcmp('aä', 'äx'); strcmp('sä', 'ßa') strcmp('aä', 'äx') -1 -1 create table t1 (a varchar(10), key(a), fulltext (a)); insert into t1 values ("a"),("abc"),("abcd"),("hello"),("test"); select * from t1 where a like "abc%"; a abc abcd select * from t1 where a like "test%"; a test select * from t1 where a like "te_t"; a test select * from t1 where match a against ("te*" in boolean mode)+0; a test drop table t1; create table t1 (word varchar(255) not null, word2 varchar(255) not null default '', index(word)); show create table t1; Table Create Table t1 CREATE TABLE `t1` ( `word` varchar(255) COLLATE latin1_german2_ci NOT NULL, `word2` varchar(255) COLLATE latin1_german2_ci NOT NULL DEFAULT '', KEY `word` (`word`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_german2_ci insert into t1 (word) values ('ss'),(0xDF),(0xE4),('ae'); update t1 set word2=word; select word, word=binary 0xdf as t from t1 having t > 0; word t ß 1 select word, word=cast(0xdf AS CHAR) as t from t1 having t > 0; word t ss 1 ß 1 select * from t1 where word=binary 0xDF; word word2 ß ß select * from t1 where word=CAST(0xDF as CHAR); word word2 ss ss ß ß select * from t1 where word2=binary 0xDF; word word2 ß ß select * from t1 where word2=CAST(0xDF as CHAR); word word2 ss ss ß ß select * from t1 where word='ae'; word word2 ä ä ae ae select * from t1 where word= 0xe4 or word=CAST(0xe4 as CHAR); word word2 ä ä ae ae select * from t1 where word between binary 0xDF and binary 0xDF; word word2 ß ß select * from t1 where word between CAST(0xDF AS CHAR) and CAST(0xDF AS CHAR); word word2 ss ss ß ß select * from t1 where word like 'ae'; word word2 ae ae select * from t1 where word like 'AE'; word word2 ae ae select * from t1 where word like binary 0xDF; word word2 ß ß select * from t1 where word like CAST(0xDF as CHAR); word word2 ß ß drop table t1; CREATE TABLE t1 ( autor varchar(80) NOT NULL default '', PRIMARY KEY (autor) ); INSERT INTO t1 VALUES ('Powell, B.'),('Powell, Bud.'),('Powell, L. H.'),('Power, H.'), ('Poynter, M. A. L. Lane'),('Poynting, J. H. und J. J. Thomson.'),('Pozzi, S(amuel-Jean).'), ('Pozzi, Samuel-Jean.'),('Pozzo, A.'),('Pozzoli, Serge.'); SELECT * FROM t1 WHERE autor LIKE 'Poz%' ORDER BY autor; autor Pozzi, S(amuel-Jean). Pozzi, Samuel-Jean. Pozzo, A. Pozzoli, Serge. DROP TABLE t1; CREATE TABLE t1 ( s1 CHAR(5) CHARACTER SET latin1 COLLATE latin1_german2_ci ); show create table t1; Table Create Table t1 CREATE TABLE `t1` ( `s1` char(5) COLLATE latin1_german2_ci DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_german2_ci INSERT INTO t1 VALUES ('Ü'); INSERT INTO t1 VALUES ('ue'); SELECT DISTINCT s1 FROM t1; s1 Ü SELECT s1,COUNT(*) FROM t1 GROUP BY s1; s1 COUNT(*) Ü 2 SELECT COUNT(DISTINCT s1) FROM t1; COUNT(DISTINCT s1) 1 SELECT FIELD('ue',s1), FIELD('Ü',s1), s1='ue', s1='Ü' FROM t1; FIELD('ue',s1) FIELD('Ü',s1) s1='ue' s1='Ü' 1 1 1 1 1 1 1 1 DROP TABLE t1; create table t1 select repeat('a',4000) a; delete from t1; insert into t1 values ('a'), ('a '), ('a\t'); select collation(a),hex(a) from t1 order by a; collation(a) hex(a) latin1_german2_ci 6109 latin1_german2_ci 61 latin1_german2_ci 6120 drop table t1; drop table if exists t1; create table t1 as select repeat(' ', 64) as s1; select collation(s1) from t1; collation(s1) latin1_german2_ci delete from t1; insert into t1 values ('a'),('ae'),(_latin1 0xE4); insert into t1 values ('o'),('oe'),(_latin1 0xF6); insert into t1 values ('s'),('ss'),(_latin1 0xDF); insert into t1 values ('u'),('ue'),(_latin1 0xFC); select s1, hex(s1) from t1 order by s1, binary s1; s1 hex(s1) a 61 ae 6165 ä E4 o 6F oe 6F65 ö F6 s 73 ss 7373 ß DF u 75 ue 7565 ü FC select group_concat(s1 order by binary s1) from t1 group by s1; group_concat(s1 order by binary s1) a ae,ä o oe,ö s ss,ß u ue,ü drop table t1; SET NAMES latin1; CREATE TABLE t1 ( col1 varchar(255) NOT NULL default '' ) ENGINE=MyISAM DEFAULT CHARSET=latin1 collate latin1_german2_ci; INSERT INTO t1 VALUES ('ß'),('ss'),('ss'); ALTER TABLE t1 ADD KEY ifword(col1); SELECT * FROM t1 WHERE col1='ß' ORDER BY col1, BINARY col1; col1 ss ss ß DROP TABLE t1; create table t1 (s1 char(5) character set latin1 collate latin1_german2_ci); insert into t1 values (0xf6) /* this is o-umlaut */; select * from t1 where length(s1)=1 and s1='oe'; s1 ö drop table t1;