2013-06-27 54 views
2

我试图通过将其与日期比较,如删除表中的记录:归类错误

DELETE FROM <table> WHERE DATE_ADD('MTN_CPCreateDate', INTERVAL 3 DAY) < CURDATE() 

对于此查询,我对着下面的错误

1267 - Illegal mix of collations (utf8_general_ci,COERCIBLE) and (latin1_swedish_ci,NUMERIC) for operation '<' 

我经历了各种帖子,但无法找到解决方案。我可能做错了什么?

+0

什么是'MTN_CPCreateDate'的列类型? – JohnP

+0

Coulmn数据类型为'Date' – user2529112

回答

0

显然,您的查询中有列/表具有不同的排序规则,对于某些操作是非法的。

尝试在创建表的列问你整理改变涉及到单一的排序规则

表/列。这里有一个排序错误匹配

+0

这可以工作..因为我在Date字段中创建了一个默认排序规则的表,现在当我运行此查询时,它可以正常工作。所以改变你的整理。 –

+0

我的日期列的数据类型是日期(例如2013-06-27),当我浏览我的表时,它不显示此列的任何归类,而对于其他列,它在表中显示为latin1_swedish_ci归类 - – user2529112

+0

从创建数据库时开始,将其保留为默认值。默认情况下,它只是写成'Collat​​ion'不会改变它。它没有任何区别。然后创建一个表并确保排序规则字段保持不变。现在就试试吧。 –