簡體   English   中英

操作'='的歸類(latin5_turkish_ci,IMPLICIT)和(latin1_swedish_ci,COERCIBLE)的非法混合

[英]Illegal mix of collations (latin5_turkish_ci,IMPLICIT) and (latin1_swedish_ci,COERCIBLE) for operation '='

我該如何解決

"Illegal mix of collations (latin5_turkish_ci,IMPLICIT) 
and (latin1_swedish_ci,COERCIBLE) 
for operation '='" problem? 

我的查詢: select * from up where name='camış'

連接選項:

SET NAMES 'latin5'
SET character_set_connection = 'latin5'
SET collation_connection = latin5_turkish_ci

-我將排序規則更改為latin5_turkish_ci,但不起作用。 在幾分鍾(大量查詢)之間,問題自行消失。

這個想法很糟糕,但應該可以:

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)填充它,刪除舊列並重命名新列。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM