最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

案例分析:記一次IF函數(shù)引發(fā)的血案

2022-07-11 14:13 作者:做架構(gòu)師不做框架師  | 我要投稿


引言

今天一大早上,產(chǎn)品經(jīng)理楊姐就來找我說:“小米,趕緊看看群里,運(yùn)營的童鞋說系統(tǒng)無論是B端還是C端,秒殺頻道都不能打開了,每天都有秒殺活動,這事很著急啊”!好家伙,看來事情確實蠻嚴(yán)重的……

定位問題

我立刻打開電腦,查看日志,發(fā)現(xiàn)日志中報錯信息是 “SQL語句” 執(zhí)行錯誤,我把sql語句撈出來放到 Navicat 上,并填充相應(yīng)的參數(shù),發(fā)現(xiàn)報以下錯誤:

分析了該sql語句,并把 不相關(guān)的where查詢條件 干掉,最后把問題定位到這一行:

最終發(fā)現(xiàn)是 IF()函數(shù) 中,條件為 false 執(zhí)行的語句有問題,即“g.goods_sub_type IN NULL” 報錯!

修復(fù)問題

既然發(fā)現(xiàn)出現(xiàn)問題的地方,就開始著手修復(fù)問題,看了下業(yè)務(wù)邏輯,IN 后面的是一個固定的數(shù)組,所以把 IN 后面寫成固定數(shù)組即可,像這樣:

搞定!

MySQL IF()函數(shù)

IF()函數(shù)在條件為TRUE時返回一個值,如果條件為FALSE則返回另一個值。

語法如下:

IF(condition, value_if_true, value_if_false)

注意

  • IF() 函數(shù),無論 conditiontrue 還是 false,后面兩個語句是一定會被運(yùn)行的,即要保證 value_if_true 和 value_if_false 的語法是正確的,而不是認(rèn)為 condition 為 true 的時候,value_if_false 會移除掉。就像在本例中,開發(fā)人員錯誤的任務(wù)當(dāng) NULL IS NULL 的時候, 只有 1 = 1 ,而 g.goods_sub_type IN NULL 會去掉。

  • IN 語句后面的范圍一定要用 小括號 “()” 包裹才可以。

END

好兄弟可以點贊并關(guān)注我的公眾號“javaAnswer”,全部都是干貨。



案例分析:記一次IF函數(shù)引發(fā)的血案的評論 (共 條)

分享到微博請遵守國家法律
泰和县| 会昌县| 舟曲县| 林甸县| 紫阳县| 庄河市| 塔城市| 涞源县| 张家川| 巫溪县| 安阳市| 凉城县| 虎林市| 大关县| 太原市| 南华县| 莱芜市| 喜德县| 江西省| 洛宁县| 加查县| 孟津县| 嘉义县| 双辽市| 南靖县| 巨野县| 澄迈县| 万宁市| 垦利县| 五河县| 兴业县| 财经| 清河县| 阿克陶县| 东宁县| 怀安县| 郑州市| 勃利县| 大安市| 仪征市| 方正县|