select concat(400,'aaa') 
要是连接中文的话  select concat(400,'呵呵')也没问题  可是问题在这里create table article 
(
title varchar(25)
);insert into article values (concat(100,'可以'));mysql> select * from article;//
+-------+
| title |
+-------+
| 100   |
+-------+
1 row in set (0.00 sec)
这里的中文跑到哪里去了????  实在不明白

解决方案 »

  1.   

    这里有个一 warning 
    不知道是不是这个问题
      

  2.   


    SHOW WARNINGS;
    看一下警告是什么。估计是你的字符集设计有问题。检查一下表的字符集, 或者直接 show create table article ;然后看一下相关的字符集设置 show variables like 'char%';
      

  3.   

    mysql> show create table article ;
        -> //
    +---------+---------------------------
    -----------------------------+
    | Table   | Create Table
                                 |
    +---------+---------------------------
    -----------------------------+
    | article | CREATE TABLE `article` (
      `title` varchar(25) default NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
    +---------+---------------------------
    -----------------------------+
      

  4.   

    mysql> show warnings
        -> //
    +---------+------+--------------------------------------------+
    | Level   | Code | Message                                    |
    +---------+------+--------------------------------------------+
    | Warning | 1265 | Data truncated for column 'title' at row 1 |
    +---------+------+--------------------------------------------+
    1 row in set (0.00 sec)
      

  5.   

     show variables like 'char%';看一下。如果不是utf8则 
    set names 'utf8';
      

  6.   

    utf8 竟然不行  
    我把 字符集 改成 gb2312 就可以了
      

  7.   

    这种情况, 我也碰到
    只要concat的某一成员不是字符型, 如数字,日期, mysql字符的自动转换机制就不灵了.
    改为
    insert into article values (concat('100','可以')); 不会有问题或改为
    insert into article values (concat(100,convert('可以' using utf8))); 不会有问题
    或改为
    insert into article values (concat(100,convert('可以' using gbk))); 也不会有问题
     
      

  8.   

    是你的mysql的客户端的字符集问题造成的。呵呵呵!数据库没有问题。