[英]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.