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