簡體   English   中英

跨數據庫的MySQL COLLATE錯誤不一致

[英]Inconsistent MySQL COLLATE errors across databases

我有兩個物理上獨立的MySQL數據庫,我必須在其上運行單個查詢。

該查詢的SQL部分如下所示:

and foo_table.bar_column like concat('%', rules.pattern, '%') COLLATE utf8_general_ci

它在數據庫A上運行正常,但在數據庫BI上遇到此錯誤:

ERROR 1253 (42000): COLLATION 'utf8_general_ci' is not valid for CHARACTER SET 'latin1'

如果我刪除了排序規則,它在數據庫B上運行正常但在數據庫AI上遇到此錯誤:

ERROR 1267 (HY000): Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8_unicode_ci,IMPLICIT) for operation 'like'

是否有可在兩個數據庫上運行的查詢版本?

或者,是否有一個配置,我可以在任一數據庫上更改,以使查詢在兩個地方都滿意?

更新:

數據庫A是版本5.1.38,數據庫B是版本5.1.34

這里有一些有希望的信

更新:該鏈接中的建議解決了我的問題,雖然語法有點過時,你不必再轉換每一列,只需要表格。

ALTER TABLE the_latin_one CONVERT TO CHARACTER SET utf8;

暫無
暫無

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

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