Incorrect string value: '\xE2\x80\x94 5 ...' for column 'f_string' at row 25
这是网上搜索到的,一个方法函数,实现了 split的功能,很奇怪,开始的时候直接操作表格字段的时候是成功的.
后来在触发器调用传入变量的时候出现了上述错误.
不解 一头雾水~~~~~CREATE DEFINER=`root`@`%` FUNCTION `func_get_split_string`(
f_string varchar(1000),f_delimiter varchar(5),f_order int) RETURNS varchar(255) CHARSET utf8
BEGIN
  declare result varchar(255) default '';
  set result = reverse(substring_index(reverse(substring_index(f_string,f_delimiter,f_order)),f_delimiter,1));
  return result;
END$$DELIMITER ;

解决方案 »

  1.   

    set @xstr1 = func_get_split_string(@tmp," ‖ ",@i+1);
    出发器中是这样调用的
      

  2.   

    应该看一下触发器传过去的@tmp值,可能是传的值有问题。函数中应将f_order限制为无符号型,你函数中设置result的方式和下面的语句相同:
      set result=substring_index(substring_index(f_string,f_delimiter,f_order),f_delimiter,-1);
      

  3.   

    Incorrect string value: '\xA1\xAA 5 \xA1...' for column 'f_string' at row 25将函数内的取值方法该成了你写的那样,返回的错误就成这样了,好象没有什么大的差别f_order 传入的是数字
    @i 是个累加变量,
    set @xstr1 = func_get_split_string(@tmp," ‖ ",@i+1);
    在while 循环中.
      

  4.   

    贴出出错的这f_string,f_delimiter,f_order值
      

  5.   


    f_string ="A1-18-05 — 5 — 2 ‖ A1-18-05 — 5 — 2"
    f_delimi =" ‖ "
    f_order = 1
      

  6.   

    啊 这个长的横线不能用啊?
    是 智能ABC v1 第二列 第一个 字符.
      

  7.   

    The user specified as a definer ('bupin'@'%') does not exist
    之前的错误没了 但是变成了这个.昏倒
    bupin 是我正在操作的表名
      

  8.   

    错了,bupin是我正在操作的  数据库用户 帐户名
      

  9.   

    晕 检查后发现 是 帐户名写错了~~~
    调好后 就又回到最初的编码问题了 晕~~~~~其他信息: Illegal mix of collations (utf8_general_ci,COERCIBLE) and (gb2312_chinese_ci,IMPLICIT) for operation '='