最近工作用到了mysql,问题百出。虽然是我技术上有欠缺,但是我同样用mssqlserver一点没问题。最头疼的是mysql的中文处理,我写了个存储过程:
参数 areaname2 varchar(225) charset utf8
begin
select areaId  from sys_area where  areaName=areaName2;
end
执行调用的时候怎么都通不过,my.ini我也改了默认编码格式。也是我不精通mysql。不过我用mssqlserver运行上述代码正常,所以mysql确实有点不好用。能解决的帮我个忙。

解决方案 »

  1.   

    看一下这个贴子先,然后提供必要的信息以供他人能在自己的机器上模拟你的问题。http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/12/4174186.aspx
    MySQL 中文显示乱码
      

  2.   

    那我说清楚,就是创建一个查询的存储过程,接收一个中文类型的参数打个比方说:表A 两个字段 id和name。通过name查询id的存储过程。name是varchar类型,结果就出现了我提的问题。
      

  3.   

    下面代码在 MySQL Query Browser 测试没有问题!!!mysql> create table t_wobuwansu(id int primary key, name varchar(100)) CHARSET=utf8;
    Query OK, 0 rows affected (0.08 sec)mysql>
    mysql> delimiter //
    mysql>
    mysql> CREATE PROCEDURE p_wobuwansu(areaname2 varchar(225) charset utf8)
        -> BEGIN
        ->  select * from t_wobuwansu where name=areaname2;
        -> END;
        -> //
    Query OK, 0 rows affected (0.25 sec)mysql> delimiter ;
      

  4.   

    这两种数据库各有所长,使多了就知道。
    MYSQL的字符集确实是比较头疼的问题,
    确保你在相同的字符集下建表、插入记录、建立 SP,应该没有问题,你的问题应该是字符集方面的。
    show variables like 'char%'; 
      

  5.   

    对我来说,mssqlserver永远也比不上MySQL :)
      

  6.   

    我用的Navicat8这个工具写的mysql,用工具里自带的创建过程的工具怎么修改,都不能成功,现在还莫名其妙怎么在工具里不能成功。最后自己用脚本写,终于成功了!不过,我也不敢用存储过程了,直接在c#里拼接sql字符串。谢谢大家的帮助,最后10分给acmain了,小弟的分少,不好意思!刚才遇到一个小问题我用mssql里的charindex()函数,谁知道mysql里没有。查了一下资料对应mssqlserver:charindex()在mysql里是find_in—set,这里也给大家提个醒。
      

  7.   

    charindex 在mysql 中instr() 或者 LOCATE(),