create table Table1(
elog varchar(7999) default null)
ENGINE=InnoDB AUTO_INCREMENT=138 DEFAULT CHARSET=gb2312;update table1 set elog = '';update table1 set elog = elog + '你好';  select * from table1  < - 显示 ??乱码还有怎样update成日期里的几号? 即设 elog 里的内容为  '03日 做了'

解决方案 »

  1.   

    mysql 字符串相加不是用+号,是用concat函数。update table1 set elog = concat(elog , '你好');  
      

  2.   

    高手,你终于来了,呵呵~ 我对MYSQL一点办法都没有
      

  3.   

    还有怎样update成日期里的几号? 即设 elog 里的内容为  '03日 做了'这个可以试一下用 replace(elog,'03日','09日'), 但要看你的elog中的具体内容,防止误替换。
      

  4.   

    我能不能这样insert into table1 values('');再update table1 set elog = concat(elog , '你好');还有,如果我要加的不是[你好],还是日期+日 -> [03日]
      

  5.   

    我要的不是replace而是:declare ad datetime;
    set ad = '2009-07-01';假设 elog里是[你好]再update成 [你好 01日]
      

  6.   

    假设 elog里是[你好]
    update成 [你好 01日]

    update table1 set elog = concat(elog ,' ', DATE_FORMAT(now(),'%d') , '日'); 
      

  7.   

    存储过程出现ERROR 1270 (HY000): Illegal mix of collations (gb2312_chinese_ci,IMPLICIT), (lat
    in1_swedish_ci,COERCIBLE), (latin1_swedish_ci,COERCIBLE) for operation 'concat'
      

  8.   

    按贴子中的方法检查你的字符集设置。http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/12/4174186.aspx
    MySQL 中文显示乱码
      

  9.   

    不用存储过程单跑这句UPDATE表,也是出现这个错误
      

  10.   

    或者
    update table1 set elog = concat(elog ,_gb2312 ' ',CONVERT(DATE_FORMAT(ad,'%d') USING gb2312), _gb2312 '日')
      

  11.   

    用这个 _gb2312 可以了,谢谢,为什么MYSQL不像MSSQL那样简单...
      

  12.   

    用这个 _gb2312 可以了
    用 _gb2312 是应该你当前的连接中的字符集估计不是gb2312.为什么MYSQL不像MSSQL那样简单.
    为什么MS SQL SERVER不免费? 另外MS SQL SERVER或ORACLE其实同样也有字符集设置的问题。只不过不象MYSQL这样明显。因为这些产品尽可能使用了操作系统的设置。