• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

MySQL存储过程中汉字字符串的比较实现解决思路

mysql 搞代码 7年前 (2018-06-02) 152次浏览 已收录 0个评论

mysql存储过程中汉字字符串的比较实现
在MySQL的存储过程中,对某一属性值与中文字符串进行比较,无法正确进行比较!
  cmd中对于mysql中直接写入的中文字符能够进行识别,但是对于通过delphi的ADO控件进行输入的中文字符串,输出字符串为乱码。于是将问题定位于字符集的问题的上,进行相关问题搜索,set names ‘gbk’,可以实现delphi输入中文字符在cmd下的正确显示,但是存储过程中仍然无法进行正确比较,希望各位能够给予赐教,谢谢!

——解决方案——————–
检查你的字符集设置。

http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/12/4174186.aspx
MySQL 中文显示乱码
——解决方案——————–

引用

9. 存储过程参数乱码

create procedure t ( aa char(10) charset ‘gbk’)

未完。。。

——解决方案——————–
show variables like ‘char%’; 
估计是字符集不统一
——解决方案——————–
set names ‘gbk’;
对以前建立的表、插入的数据没有影响

用mYSQLDUMP导出数据->在统一的gbk字符集下重新建立库、表->导入数据

my.ini
[mysql]

default-character-set=gbk

重新启动MYSQL

——解决方案——————–

探讨

字符集我用了set names ‘gbk’;
能够在cmd中显示中文,但是set names只是暂时的修改字符集参数,永久的修改,我还没试过,担心修改了之后恢复不了的。但是set names ‘gbk’之后,我在统一的gbk字符集下,重新建立了表单,但是依旧没能进行中文比较。是不是暂时性的修改无效,必须要永久性的修改后,再重新建立表单才能有效啊?谢谢您了!
引用:
sho……

——解决方案——————–
不但数据库中编码要统一,你代码用的编码最好也和数据库统一


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:MySQL存储过程中汉字字符串的比较实现解决思路

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址