What is the reason, that using CONCAT() in pure UTF-8 environment MySQL still treats concatenated string (when some col in expression is for example int or date) as some oth
It's a well known bug in MySQL. It's fixed in MySQL 5.5
See: http://bugs.mysql.com/bug.php?id=12030
The issue stems from concatenating an integer with a varchar.
The work around is to cast the id (integer) first to a char, and then concatenate, ie:
SELECT CONCAT(cast(id as char), title) FROM utf8_test
It probably is DBD::mysql issue/peculiarity. Try enabling utf8 in database handle as described in POD for DBD::mysql
(mysql_enable_utf8
part).
This old (Perl 5.8 times) article can also help.