【问题标题】:mysql 5.6.35 DELETE FROM error 1054 [duplicate]mysql 5.6.35从错误1054中删除[重复]
【发布时间】:2018-07-07 14:30:10
【问题描述】:

我正在尝试执行一个相当简单的命令:

DELETE from table WHERE date = date(’2018-07-01’);

但是,当我在 MySQL 上运行此命令时,我收到以下错误:

错误 1054 (42S22):“where 子句”中的未知列 ’2018

关于我应该在这里做什么以便查询可以运行的任何想法?我正在使用 MySQL 5.6.35。

【问题讨论】:

  • 可能你从某处复制了 SQL 语句,qoute 看起来是错误的。SQL qoute 它应该是单个 qoute,如 '.. 也可以写成更简单的 date = date(’2018-07-01’) date = '2018-07-01'
  • @RaymondNijland 感谢您的回复。我更正了我看到的原始错误消息。即使我取出 date() 部分,我仍然得到相同的错误:mysql> DELETE from table -> WHERE date = '2018-07-01' -> ;错误 1054 (42S22):“where 子句”中的未知列“2018”
  • 拼写错误。投票以离题结束。

标签: mysql sql sql-delete mysql-error-1054


【解决方案1】:

SQL 中的字符串用's 表示。您的代码使用 s 代替。此外,如果这些是您的真实表名和列名,您应该转义它们:

DELETE FROM `table` WHERE `date` = DATE('2018-07-01')

【讨论】:

  • date = DATE('2018-07-01') 可以写得更简单 date = '2018-07-01' @TomJackson 就像我在 cmets 中所说的那样..(请记住反引号转义(`)stackoverflow 格式也适用于反引号)
  • 由于触发器,我遇到了这个问题。当我删除触发器时,问题就解决了。谁能告诉我为什么会这样?
猜你喜欢
  • 2016-02-07
  • 1970-01-01
  • 2017-10-11
  • 2018-01-06
  • 2011-10-10
  • 2016-06-19
  • 2016-01-04
  • 2011-07-18
  • 1970-01-01
相关资源
最近更新 更多