簡體   English   中英

MySQL中用於操作的非法排序規則混合=

[英]illegal mix of collations in MySQL for operation =

我有一個表abc有2列:

id INT(3) name VARCHAR(10)

該表及其所有列的默認歸類為utf8_unicode_ci

然后,我有另一個具有2列的表xyz

id INT(3) name VARCHAR(10)

該表及其所有列的默認歸類也是utf8_unicode_ci

現在,我執行以下select語句:

SELECT NAME FROM abc WHERE ID NOT IN (SELECT ID FROM XYZ);

我已經檢查了兩個表的排序規則,但是它們仍然相同,但仍給我一個錯誤:操作的illegal mix of collations (utf8_general_ci implicit) and (utf8_unicode_ci implicit) for operation =

我還嘗試了NOT IN的替代方法,即通過使用LEFT JOIN但它仍然給我同樣的錯誤。

我已經對此堅持了很長時間。 感謝您的幫助。

可能的解決方法:

SELECT NAME
    FROM abc
    LEFT JOIN XYZ  USING(ID)
    WHERE XYZ.ID IS NULL;

另一個幫助可能是

SET NAMES utf8 COLLATE utf8_unicode_ci;

暫無
暫無

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

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