簡體   English   中英

MySQL查詢不適用於NOT IN

[英]MySQL-query is not working with NOT IN

我正在編寫一個無法正常工作的查詢

我的查詢:

SELECT * 
FROM admin_marker 
WHERE admin_marker.city NOT IN (SELECT target FROM messsage)

它說

#1267 - 非法混合排序
(utf8_general_ci,IMPLICIT)和
(utf8_unicode_ci,IMPLICIT)用於操作'='

您遇到的問題是由於兩個表之間的不兼容的排序規則。 解決它的一種方法是在查詢中使用COLLATE子句:

SELECT * 
FROM admin_marker 
WHERE admin_marker.city NOT IN (SELECT target COLLATE utf8_general_ci 
                                FROM messsage)

在這里演示

這通常是通過比較兩個不兼容的排序字符串或嘗試將不同排序規則的數據選擇到組合列中引起的。 COLLATE子句允許您指定查詢中使用的排序規則。

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

問題是兩個表之間的排序,所以請嘗試COLLATE為此,可能這是由COLLATE的幫助輕松解決。

SELECT * FROM admin_marker WHERE admin_marker.city NOT IN (SELECT target COLLATE utf8_general_ci FROM messsage)

並檢查其數據庫是否相同

不兼容的排序規則或嘗試將不同排序規則的數據選擇到組合列中。 COLLATE子句允許您指定查詢中使用的排序規則。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM