drop table if exists t1; drop table if exists t2; set names ujis; set character_set_database = ujis; create table t1(c1 char(1)) default charset = ujis; create table t2(c1 char(1)) default charset = ujis; insert into t1 values('¤¢'); insert into t1 values('¤¤'); # Returns expected result select * from t1 union select * from t2; # Doesn't return the data in t2 select * from t1 union select * from t2 union select 'a'; # Only returns the data in t1 select * from t1 union select * from t2 union select '¤¦'; # Returns expected result select * from t1 union select * from t2 union select 'aa'; # Expand the column length alter table t1 modify c1 char(2); alter table t1 modify c1 char(2); # Everything works fine select * from t1 union select * from t2; select * from t1 union select * from t2 union select 'a'; select * from t1 union select * from t2 union select '¤¦'; select * from t1 union select * from t2 union select 'aa'; drop table t1; drop table t2;