我可以在 mySQL 中添加带有条件的值吗?
Posted
技术标签:
【中文标题】我可以在 mySQL 中添加带有条件的值吗?【英文标题】:Can I add values with conditions in mySQL [duplicate] 【发布时间】:2020-10-21 23:01:53 【问题描述】:我正在尝试将数值添加到“AuthDate”为“06/05/20”且“时间”为“1P -2P”的列。
我运行了以下查询:
update main
set calls = 2072
where authdate = '06/05/20'
and time = '1P - 2P';
*main = 表名 调用 = 列名
但我收到错误代码 1175 您正在使用安全更新模式
有人知道我为什么会收到错误消息吗?
【问题讨论】:
请给我们完整的错误信息。 【参考方案1】:您的数据库或会话有option sql_safe_updates
enabled。除其他外,这禁止 update
没有 where
子句,或者有 where
子句但列不是键(未编入索引)。即使有索引,但优化选择不使用它,查询也会中止。
这更像是一种防止初学者犯错的选项。如果您真的知道自己在做什么,则可以在会话级别禁用该选项:
set sql_safe_updates = 0;
旁注:我怀疑authdate = '06/05/20'
的情况:
如果autdate
是类似date
的数据类型,那么您应该给它一个合法的日期字符串,例如:authdate = '2020-06-05'
(或'2020-05-06'
?)
如果它是一个字符串,那么...考虑将其存储为date
;出于多种原因,将日期存储为字符串是不好的做法,应该避免
【讨论】:
成功了!正如您所提到的,authdate 当前存储为字符串,需要存储为日期。感谢您的帮助以上是关于我可以在 mySQL 中添加带有条件的值吗?的主要内容,如果未能解决你的问题,请参考以下文章