我该如何解决
"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但不起作用。 在几分钟(大量查询)之后,问题就会消失。
答案 0 :(得分:0)
这个相当糟糕的想法但应该有效:
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)
填充它,删除旧列并重命名新列。