首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MySQL-查询不使用not

MySQL-查询不使用not
EN

Stack Overflow用户
提问于 2015-07-10 05:50:03
回答 3查看 1.6K关注 0票数 12

我正在写一个不能正常工作的查询。

我的问题是:

代码语言:javascript
运行
复制
SELECT * 
FROM admin_marker 
WHERE admin_marker.city NOT IN (SELECT target FROM messsage)

上面写着

#1267 -非法混合整理 (utf8_general_ci,隐式)和 (utf8_unicode_ci,隐式)用于操作“=”

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-07-10 05:58:31

您所面临的问题是两个表之间不兼容的排序规则造成的。解决这个问题的一种方法是在查询中使用COLLATE子句:

代码语言:javascript
运行
复制
SELECT * 
FROM admin_marker 
WHERE admin_marker.city NOT IN (SELECT target COLLATE utf8_general_ci 
                                FROM messsage)

Demo here

票数 16
EN

Stack Overflow用户

发布于 2015-07-10 05:54:29

这通常是通过比较两个不兼容排序规则字符串或试图将不同排序规则的数据选择到组合列中造成的。子句COLLATE允许您指定查询中使用的排序规则。

或者您可以使用ALTER TABLE来匹配COLLATE

票数 3
EN

Stack Overflow用户

发布于 2015-07-10 06:12:31

问题是在两个表之间的排序,所以请尝试整理这一点,这可能是通过整理的帮助很容易解决。

代码语言:javascript
运行
复制
SELECT * FROM admin_marker WHERE admin_marker.city NOT IN (SELECT target COLLATE utf8_general_ci FROM messsage)

并检查其数据库是否相同。

不兼容排序规则或试图将不同排序规则的数据选择到组合列中。子句排序规则允许您指定查询中使用的排序规则。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31333361

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档