文章图片
文章图片
引言今天一大早上 , 产品经理杨姐就来找我说:“小米 , 赶紧看看群里 , 运营的童鞋说系统无论是B端还是C端 , 秒杀频道都不能打开了 , 每天都有秒杀活动 , 这事很着急啊”!好家伙 , 看来事情确实蛮严重的……
定位问题我立刻打开电脑 , 查看日志 , 发现日志中报错信息是 “SQL语句” 执行错误 , 我把sql语句捞出来放到 Navicat 上 , 并填充相应的参数 , 发现报以下错误:
分析了该sql语句 , 并把 不相关的where查询条件 干掉 , 最后把问题定位到这一行:
最终发现是 IF()函数 中 , 条件为 false 执行的语句有问题 , 即“g.goods_sub_type IN NULL” 报错!
修复问题既然发现出现问题的地方 , 就开始着手修复问题 , 看了下业务逻辑 , IN 后面的是一个固定的数组 , 所以把 IN 后面写成固定数组即可 , 像这样:
搞定!
MySQL IF()函数IF()函数在条件为TRUE时返回一个值 , 如果条件为FALSE则返回另一个值 。
语法如下:
IF(conditionvalue_if_truevalue_if_false)
注意
- IF() 函数 , 无论 condition 为 true 还是 false , 后面两个语句是一定会被运行的 , 即要保证 value_if_true 和 value_if_false 的语法是正确的 , 而不是认为 condition 为 true 的时候 , value_if_false 会移除掉 。 就像在本例中 , 开发人员错误的任务当 NULL IS NULL 的时候 ,只有 1 = 1, 而 g.goods_sub_type IN NULL 会去掉 。
- IN 语句后面的范围一定要用小括号 “()” 包裹才可以 。
- 本文转自:每日甘肃每日甘肃网记者 伊力扎提·依明 李萍先进装备展厅。|「兰洽会·新装备馆」甘肃“智”造 跑出装备制造业质变“加速度”
- 本文转自:新民晚报图说:上大“全自动核酸采样机器人”实验样品 采访对象供图新民晚报讯(记...|上海大学研发“无接触”核酸采样机器人
- 笔记本|ROG幻16领衔 四款超值新品笔记本推荐
- 本文转自:光明网光明网讯(记者蔡琳)由我国太阳物理学家自主提出的|一起为这颗“中国星”命名 “先进天基太阳天文台”公开征名
- 本文转自:科技日报科技日报记者 陆成宽 金凤继“悟空”、“墨子号”、“慧眼”、“实践十号...|中国首颗综合性太阳探测专用卫星启动征名
- 笔记本|价同618!大学生必备全能笔记本幻16仅9999元
- |拜拜了空调!格力强敌研发“制冷黑科技”,一天一度电不再是文字游戏
- 笔记本|新纪录!国产笔记本开机速度杀进12秒:飞腾腾锐D2000立功
- 笔记本|戴尔3K高分辨率屏幕笔记本登场,配DDR5内存,没有小键盘
- 华硕新款双屏笔记本今天上架:最高i9+RTX 3050 Ti