【发布时间】:2011-01-20 15:07:56
【问题描述】:
我需要将一列从一个表转移到另一个表。源表具有与目标表不同的排序规则(latin1_general_ci 和 latin1_swedish_ci)。
我用
UPDATE target
LEFT JOIN source ON target.artnr = source.artnr
SET target.barcode = source.barcode
我得到一个“非法的排序规则组合”。
有什么快速解决方法可以在不更改任一表的情况下使其正常工作?我尝试使用 CONVERT 和 COLLATE 以 UTF-8 运行整个操作,但这并没有帮助。 “条形码”仅包含数字数据(即使它们都是 VARCHAR),因此无论哪种方式都无需担心排序规则。我只需要这样做一次。
编辑:我在涉及的每个字段上使用
CAST(fieldname as unsigned)对其进行了排序。在这种情况下,我能够做到这一点,因为只有数字数据受到影响,但很高兴知道对此有更通用的方法,因此我将问题留待解决。
【问题讨论】:
标签: mysql character-encoding collation