簡體   English   中英

MYSQL錯誤:排序規則的非法混合

[英]MYSQL ERROR: Illegal Mix of Collations

我收到以下錯誤消息

[Err] 1267-操作'='的排序規則(latin1_swedish_ci,IMPLICIT)和(utf8_general_ci,COERCIBLE)的非法混合

子查詢包含來自兩個不同數據庫的兩個表的並集。 我試圖執行的查詢如下

 SELECT c.CORRECTION_NO FROM ( SELECT "regm2017" as `SESSION`,SERIALNO,NAME,FATHER FROM regm2017.master r17 WHERE r17.IS_DELETED=0 UNION SELECT "regm2016" as `SESSION`,SERIALNO,NAME,FATHER FROM regm2016.master r16 WHERE r16.IS_DELETED=0 ) as r JOIN corrections_registration as c ON c.SERIALNO = r.SERIALNO AND c.`SESSION`= r.`SESSION`; 

這是由於排序規則的變化而引起的。如果您在Query中顯式提供任何值,則將從Connection中獲取排序規則。

您可以使用類似這樣的東西。

  SELECT c.CORRECTION_NO FROM ( SELECT "regm2017" COLLATE utf8_general_ci as > `SESSION`,SERIALNO,NAME,FATHER FROM regm2017.master r17 WHERE r17.IS_DELETED=0 UNION SELECT "regm2016" COLLATE utf8_general_ci as `SESSION`,SERIALNO,NAME,FATHER FROM regm2016.master r16 WHERE r16.IS_DELETED=0 ) as r JOIN corrections_registration as c ON c.SERIALNO = r.SERIALNO AND c.`SESSION`= r.`SESSION`;` 

要么

  SELECT c.CORRECTION_NO FROM ( SELECT "regm2017" COLLATE latin1_swedish_ci as `SESSION`,SERIALNO,NAME,FATHER FROM regm2017.master r17 WHERE r17.IS_DELETED=0 UNION SELECT "regm2016" COLLATE latin1_swedish_ci as `SESSION`,SERIALNO,NAME,FATHER FROM regm2016.master r16 WHERE r16.IS_DELETED=0 ) as r JOIN corrections_registration as c ON c.SERIALNO = r.SERIALNO AND c.`SESSION`= r.`SESSION`; 

暫無
暫無

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

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