Description:
CONCAT(string_field,numeric_field) results in wrong charset.
How to repeat:
Sorry.
I used MyODBC client instead of standart mysql client.
I just can't grab correct russian chars from ms-dos output.
But all of this is true there too.
>select version();
4.1.4-gamma-nt
>show variables like "chara%";
character_set_client cp1251
character_set_connection koi8r
character_set_database koi8r
character_set_results cp1251
character_set_server koi8r
character_set_system utf8
character_sets_dir C:\mysql\share\charsets/
>show create table city;
CREATE TABLE `city` (
`id` int(11) NOT NULL auto_increment,
`parentid` smallint(5) unsigned NOT NULL default '0',
`dir` tinyint(11) default NULL,
`old` tinyint(11) default NULL,
`city` varchar(20) NOT NULL default '',
`ip` varchar(6) NOT NULL default '',
`wp` int(11) default NULL,
PRIMARY KEY (`id`),
KEY `dir` (`dir`),
KEY `old` (`old`),
KEY `parentid` (`parentid`),
KEY `wp` (`wp`),
CONSTRAINT `city_ibfk_1` FOREIGN KEY (`wp`) REFERENCES `wp` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=koi8r
>select concat(city,' region:',2) from city where parentid=2 ;
Уфа region:2
Салават region:2
Стерлитамак region:2
Ишимбай region:2
Белебей region:2
Агидель region:2
Нефтекамск region:2
Туймазы region:2
Белорецк region:2
Октябрьский region:2
# !!! This is normal expected russian charset result
>select concat(city,' region:',parentid) from city where parentid=2;
хЖБ region:2
уБМБЧБФ region:2
уФЕТМЙФБНБЛ region:2
йЫЙНВБК region:2
вЕМЕВЕК region:2
бЗЙДЕМШ region:2
оЕЖФЕЛБНУЛ region:2
фХКНБЪЩ region:2
вЕМПТЕГЛ region:2
пЛФСВТШУЛЙК region:2
# !!! This is INCORRECT
# russian charset
>select convert(concat(city,' region:',parentid) using koi8r) from city where parentid=2;
Уфа region:2
Салават region:2
Стерлитамак region:2
Ишимбай region:2
Белебей region:2
Агидель region:2
Нефтекамск region:2
Туймазы region:2
Белорецк region:2
Октябрьский region:2
# !!! This is normal expected russian charset result again
Description: CONCAT(string_field,numeric_field) results in wrong charset. How to repeat: Sorry. I used MyODBC client instead of standart mysql client. I just can't grab correct russian chars from ms-dos output. But all of this is true there too. >select version(); 4.1.4-gamma-nt >show variables like "chara%"; character_set_client cp1251 character_set_connection koi8r character_set_database koi8r character_set_results cp1251 character_set_server koi8r character_set_system utf8 character_sets_dir C:\mysql\share\charsets/ >show create table city; CREATE TABLE `city` ( `id` int(11) NOT NULL auto_increment, `parentid` smallint(5) unsigned NOT NULL default '0', `dir` tinyint(11) default NULL, `old` tinyint(11) default NULL, `city` varchar(20) NOT NULL default '', `ip` varchar(6) NOT NULL default '', `wp` int(11) default NULL, PRIMARY KEY (`id`), KEY `dir` (`dir`), KEY `old` (`old`), KEY `parentid` (`parentid`), KEY `wp` (`wp`), CONSTRAINT `city_ibfk_1` FOREIGN KEY (`wp`) REFERENCES `wp` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=koi8r >select concat(city,' region:',2) from city where parentid=2 ; Уфа region:2 Салават region:2 Стерлитамак region:2 Ишимбай region:2 Белебей region:2 Агидель region:2 Нефтекамск region:2 Туймазы region:2 Белорецк region:2 Октябрьский region:2 # !!! This is normal expected russian charset result >select concat(city,' region:',parentid) from city where parentid=2; хЖБ region:2 уБМБЧБФ region:2 уФЕТМЙФБНБЛ region:2 йЫЙНВБК region:2 вЕМЕВЕК region:2 бЗЙДЕМШ region:2 оЕЖФЕЛБНУЛ region:2 фХКНБЪЩ region:2 вЕМПТЕГЛ region:2 пЛФСВТШУЛЙК region:2 # !!! This is INCORRECT # russian charset >select convert(concat(city,' region:',parentid) using koi8r) from city where parentid=2; Уфа region:2 Салават region:2 Стерлитамак region:2 Ишимбай region:2 Белебей region:2 Агидель region:2 Нефтекамск region:2 Туймазы region:2 Белорецк region:2 Октябрьский region:2 # !!! This is normal expected russian charset result again