mysql:万恶的乱码之when语句中产生的乱码

来源:互联网 发布:淘宝网鞋子女鞋运动鞋 编辑:程序博客网 时间:2024/06/16 10:08

使用mysql又遇到问题了,这次是关于乱码的...

其实我也比较了解编码的问题,也知道乱码产生的原理,而且网上对mysql的乱码问题也有比较多的解答,

但是今天我遇到的这个乱码却比较奇怪,在when语句中产生了奇怪的乱码。

create table my_table(id int, name varchar(50), born DateTime);

insert into my_table values(1, '张三', 1986-9-9);

insert into my_table values(2, '李四', 1987-9-10);

insert into my_table values(3, '王五', 1988-9-11);

 

select case when id like '1' then born when id like '2' then concat(name, born) end from my_table

如上语句执行之后,id为2的那行的‘张三’就是乱码。改为:

select case when id like '1' then convert(born, char) when id like '2' then concat(name, born) end from my_table

问题即可解决。难道when语句从第一个条件判定输出的编码?