Php 操作“=”的排序规则(拉丁5_土耳其_ci,隐式)和(拉丁1_瑞典_ci,强制)的非法混合

Php 操作“=”的排序规则(拉丁5_土耳其_ci,隐式)和(拉丁1_瑞典_ci,强制)的非法混合,php,mysql,character-encoding,Php,Mysql,Character Encoding,我怎样才能解决这个问题 "Illegal mix of collations (latin5_turkish_ci,IMPLICIT) and (latin1_swedish_ci,COERCIBLE) for operation '='" problem? 我的查询:从name='camış' 连接选项: SET NAMES 'latin5' SET character_set_connection = 'latin5' SET collation_connection = latin

我怎样才能解决这个问题

"Illegal mix of collations (latin5_turkish_ci,IMPLICIT) 
and (latin1_swedish_ci,COERCIBLE) 
for operation '='" problem? 
我的查询:从name='camış'

连接选项:

SET NAMES 'latin5'
SET character_set_connection = 'latin5'
SET collation_connection = latin5_turkish_ci
- 我把校样改成拉丁文土耳其文,但不起作用。
经过几分钟的大量查询后,问题会自行消失。

这是一个相当糟糕的主意,但应该可以:

SELECT * 
  FROM up 
 WHERE CONVERT(name USING latin5) COLLATE latin5_turkish_ci = 'camış'
好主意是将所有列转换为所需的字符集,这应该是UTF-8


[+]通过转换,我的意思是不更改表/列的默认排序规则,而是转换其中的所有数据。因此,我将使用目标字符集创建新列,使用字符集更新表集new\u column=CONVERTold\u column填充它,删除旧列并重命名新列。

谢谢。我明白了。但是我已经用alter table更改了表的字符集。还有其他mysql语句吗?camış的意思是什么?