SHOW VARIABLES LIKE 'coll%';

执行下面语句
SELECT *
FROM
threat_event
WHERE expirationTime<0
AND '2012-11-09 09:23:05' > ADDTIME(startTime, '30')
出错:
SQL 错误 写道
Query : SELECT * FROM utmp.threat_event WHERE expirationTime<0 AND '2012-11-09 09:23:05' > ADDTIME(startTime, '30...
Error Code : 1267
Illegal mix of collations (utf8_general_ci,COERCIBLE) and (latin1_swedish_ci,NUMERIC) for operation '>'
Execution Time : 00:00:00:000
Transfer Time : 00:00:00:000
Total Time : 00:00:00:000
Error Code : 1267
Illegal mix of collations (utf8_general_ci,COERCIBLE) and (latin1_swedish_ci,NUMERIC) for operation '>'
Execution Time : 00:00:00:000
Transfer Time : 00:00:00:000
Total Time : 00:00:00:000
使用错误中写的编码方式:latin1_swedish_ci
执行:
SET collation_connection = 'latin1_swedish_ci';
再次执行
SHOW VARIABLES LIKE 'coll%';
查看结果为:

其中collation_connection变为:latin1_swedish_ci
再次执行报错的SQL语句,执行成功
本文介绍了一种在MySQL中因字符集冲突导致SQL查询失败的问题及其解决方案。通过调整连接字符集,成功解决了混合字符集引起的错误。

被折叠的 条评论
为什么被折叠?



