如何解决 MySQL 查询中的'非法排序规则混合”错误?

Patricia Arquette
发布: 2024-11-03 23:59:30
原创
1047 人浏览过

How to Resolve

MySql 中的非法字符排序解决方案并出现排序错误

在尝试在 SQL 查询中组合两个子查询时,您可能会遇到“非法”混合排序规则”错误。当比较或操作中涉及的列具有不同的字符集或排序规则设置时,就会出现这种情况。

要解决此错误,需要确保查询中使用的列具有相同的排序规则。要确定受影响的列,请查阅以下查询:

SELECT table_schema, table_name, column_name, character_set_name, collation_name
FROM information_schema.columns
WHERE collation_name = 'latin1_general_ci'
ORDER BY table_schema, table_name,ordinal_position;
登录后复制

这将显示具有“latin1_general_ci”排序规则的列。要解决该错误,请使用以下查询将冲突列转换为“latin1_swedish_ci”排序规则:

ALTER TABLE tbl_name CONVERT TO CHARACTER SET latin1 COLLATE 'latin1_swedish_ci';
登录后复制

通过纠正排序规则不匹配,可以成功执行查询:

SELECT username, (SUM(rating)/COUNT(*)) as TheAverage, Count(*) as TheCount
FROM ratings WHERE month='Aug' 
AND username IN (SELECT username FROM users WHERE gender =1)
GROUP BY username HAVING TheCount > 4
ORDER BY TheAverage DESC, TheCount DESC
登录后复制

以上是如何解决 MySQL 查询中的'非法排序规则混合”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板