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

歡迎光臨散文網(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ā)的血案的評論 (共 條)

分享到微博請遵守國家法律
长丰县| 嘉定区| 吉安市| 沈丘县| 满城县| 砚山县| 安阳市| 清流县| 广宁县| 大邑县| 安乡县| 芦溪县| 郑州市| 哈尔滨市| 大田县| 灌南县| 宁津县| 界首市| 浦县| 万州区| 平南县| 鄂尔多斯市| 大名县| 清河县| 南和县| 石城县| 宁德市| 陈巴尔虎旗| 棋牌| 扶绥县| 稷山县| 天等县| 车险| 通辽市| 陆河县| 桃园市| 泰兴市| 沙湾县| 盘山县| 商城县| 迭部县|