You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL执行含连字符的DELETE语句返回空结果求助

解决MySQL DELETE语句匹配不到DATE类型数据的问题

嗨,这个问题的根源其实很简单——你忘记给日期值加单引号啦!

问题分析

你写的语句:

DELETE FROM custom_prices WHERE day IN (2018-04-01,2018-04-02,2018-04-03)

MySQL会把2018-04-01当成算术减法运算来解析:2018 - 4 - 1 = 2013,最终语句等价于:

DELETE FROM custom_prices WHERE day IN (2013, 2013, 2013)

而你的day列是DATE类型,自然不可能和数字2013匹配,所以返回空结果。就算你把day改成字符串类型,数字2013和字符串'2018-04-01'也完全不匹配,还是删不到数据。

正确的写法

给每个日期值加上单引号,让MySQL把它们识别为DATE字面量(或字符串):

DELETE FROM custom_prices WHERE day IN ('2018-04-01', '2018-04-02', '2018-04-03')

小建议

为了避免误操作或者再次出现匹配不到的情况,建议先执行SELECT语句验证匹配结果:

SELECT * FROM custom_prices WHERE day IN ('2018-04-01', '2018-04-02', '2018-04-03')

确认返回了你想要删除的行之后,再执行DELETE操作会更稳妥。

内容的提问来源于stack exchange,提问作者Ali

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:22:59