【问题标题】:phpMyAdmin - #1267 - Illegal mix of collations for operation '<'phpMyAdmin - #1267 - 操作“<”的排序规则的非法混合
【发布时间】:2014-12-03 10:51:53
【问题描述】:

尝试运行以下 SQL 时出现错误:

SELECT * FROM syshealth WHERE 'timestamp' < DATE_SUB(NOW(),INTERVAL 15 MINUTE)

我收到以下错误:

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

我的表和数据库排序规则设置为 utf8_unicode_ci

我已经看了几篇文章,也试过顶答案here,但是没有成功……

还有什么想法吗?

编辑:附加信息 - 'timestamp' 列的类型为 datetime

【问题讨论】:

  • 使用反引号来转义列名,而不是引号

标签: mysql phpmyadmin collation


【解决方案1】:

如果使用单个 ' ,则需要使用 `(反引号)来标识列,这将被视为字符串文字。

SELECT * FROM syshealth WHERE `timestamp` < DATE_SUB(NOW(),INTERVAL 15 MINUTE)

【讨论】:

  • 太棒了!第一次工作。如果我要在 PHP 中执行,同样的规则是否适用?
  • @dankellys,是的,与 PHP 中的规则相同
猜你喜欢
  • 1970-01-01
  • 2019-09-14
  • 2015-04-06
  • 2023-03-21
  • 2016-09-17
  • 2016-12-08
  • 2016-02-19
  • 2015-09-16
  • 2011-12-06
相关资源
最近更新 更多