MYSQL错误:Illegal mix of collations (latin1_swedish_ci,COERCIBLE) and (gbk_chinese_ci,COERCIBLE) for operation '='

startnow 2008-01-08 08:12:36
搜索过论坛看到过类似主题:
http://topic.csdn.net/t/20050416/20/3942369.html

还是没能解决问题.

具体SQL如下:
SELECT getpp("内容")='A';

产生错误:
#1267 - Illegal mix of collations (latin1_swedish_ci,COERCIBLE) and (gbk_chinese_ci,COERCIBLE) for operation '='

说明:
1. getpp 是使用 CREATE FUNCTION 创建的一个自定义函数. getpp("内容") 返回的正常结果是 N
2. 在该sql前有执行过set names gbk. (注:在命令行下set names latin1 时运行正常, 如果是gbk也会出现错误.)

问题:
在 CREATE FUNCTION 里面可以设定其内容的字符集吗? (里面的字符集是默认的latin1 set names gbk 不起做用).




...全文
1380 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
laruence 2008-07-19
  • 打赏
  • 举报
回复
校对集不一样
使用allocate显示指明
tangshengshan 2008-07-18
  • 打赏
  • 举报
回复
如果在数据库没有发现别的非中文编码 就可以按下面的做
在 mysql 文件目录下 找到一个my.ini
修改 default-character-set=gbk 或 default-character-set=utf-8 如下
[client]

port=3306

[mysql]

default-character-set=gbk

还有一个在服务端的 default-character-set=gbk 也要改
然后重起mysql 服务器.一切OK

lvjx125 2008-05-13
  • 打赏
  • 举报
回复
fxs_2008 2008-05-13
  • 打赏
  • 举报
回复
字符集不一样!问题在于一条查询语句中有两种字符集


要校验,查mysql手册

SELECT allocate 字段 latin1_swedish_ci from table
好象要进行上面校验,你再查查手册——字符集部分
曲奇小右 2008-05-13
  • 打赏
  • 举报
回复
重新设定数据库字符集,数据表表中字符集看看 如果你装了phpmyadmin可以用里面的 整理
startnow 2008-01-15
  • 打赏
  • 举报
回复
都没人遇到这样的问题?
startnow 2008-01-10
  • 打赏
  • 举报
回复
是的, 两个字符集不一样 怎么定义getpp("内容")返回内容的字符集呢?
wildlily980 2008-01-09
  • 打赏
  • 举报
回复
两个字符集不一样。
startnow 2008-01-09
  • 打赏
  • 举报
回复
再顶一下!
startnow 2008-01-08
  • 打赏
  • 举报
回复
不起做用.

在命令行下 先set names latin1 后 再SELECT getpp("内容") 是正常的. 如果set names gbk 就出错了.
yzxlyd 2008-01-08
  • 打赏
  • 举报
回复
在里面就相当于执行普通的SQL语句一样,按理说是可以用set name语句的。。
startnow 2008-01-08
  • 打赏
  • 举报
回复
MYSQL 版本是: √5.1.19-beta-community-nt-debug

21,891

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧