首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >操作'=‘的排序规则(latin5_turkish_ci,隐式)和(latin1_swedish_ci,强制)的混合是非法的

操作'=‘的排序规则(latin5_turkish_ci,隐式)和(latin1_swedish_ci,强制)的混合是非法的
EN

Stack Overflow用户
提问于 2010-12-15 03:48:47
回答 1查看 1.6K关注 0票数 0

我该如何解决

代码语言:javascript
复制
"Illegal mix of collations (latin5_turkish_ci,IMPLICIT) 
and (latin1_swedish_ci,COERCIBLE) 
for operation '='" problem? 

我的问题:select * from up where name='camış'

连接选项:

代码语言:javascript
复制
SET NAMES 'latin5'
SET character_set_connection = 'latin5'
SET collation_connection = latin5_turkish_ci

--我将排序更改为latin5_turkish_ci,但不起作用。之间,几分钟后(大量查询),问题就会自行消失。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-12-15 04:02:14

这是一个相当糟糕的想法,但应该是可行的:

代码语言:javascript
复制
SELECT * 
  FROM up 
 WHERE CONVERT(name USING latin5) COLLATE latin5_turkish_ci = 'camış'

一个好主意是将所有列转换为所需的字符集(这应该是UTF-8)。

+转换我指的不是改变表/列的默认排序规则,而是转换其中的所有数据。因此,我将使用目标字符集创建新列,用UPDATE table SET new_column = CONVERT(old_column USING characterset)填充它,删除旧列并重命名新列。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4443496

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档