簡體   English   中英

MySQL - 操作'UNION'的非法混合排序(utf8_general_ci,COERCIBLE)和(latin1_swedish_ci,IMPLICIT)

[英]MySQL - Illegal mix of collations (utf8_general_ci,COERCIBLE) and (latin1_swedish_ci,IMPLICIT) for operation 'UNION'

如何一勞永逸地修復該錯誤? 我只是想在MySQL中做聯盟。

(我正在尋找一個快捷方式,就像讓MySQL忽略這個問題或者最好的猜測一樣,不想改變100個表上的排序規則......至少今天沒有)

不確定mySQL,但在MSSQL中你可以更改查詢中的排序規則,例如,如果你有2個表具有不同的排序規則並且你想要加入它們,或者在你的情況下你可以做你喜歡的UNION

select column1 from tableWithProperCollation
union all
select column1 COLLATE SQL_Latin1_General_CP1_CI_AS from tableWithDifferentCollation

當然,SQL_Latin1_General_CP1_CI_AS只是您要“轉換”為的歸類的一個示例

謝謝克里斯托夫。 在這種情況下,它是由第一個選擇中的文字選擇引起的,而不是來自任何不同的表格排序。

具有諷刺意味的是,我按照我為這個問題所做的這篇舊博客文章來了解它。

我發現一個修復似乎是一個簡單的修復方法是改變整個數據庫,這會給你帶來麻煩。 我認為這可能不是最好的方法,但它對我有用,而且很容易。 我在MySQL中編輯了這個命令:

ALTER DATABASE databasename COLLATE utf8_unicode_ci;

暫無
暫無

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

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