91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL ifnull的嵌套使用方法

發布時間:2021-06-16 16:50:37 來源:億速云 閱讀:261 作者:chen 欄目:開發技術

這篇文章主要講解了“MySQL ifnull的嵌套使用方法”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“MySQL ifnull的嵌套使用方法”吧!

MySQL ifnull的嵌套使用

在網上查詢ifnull有沒有嵌套使用的方式,但是貌似沒有人提到過這個用法:大都是簡單的判斷一個字段是否為空,然后用另外一個值代替的方式使用;

即是:

select ifnull(a,b) from A ;

但是我遇到的問題是兩個字段,大概場景是這樣的:

每一個商店會有兩種打折方式vip_discount與simple_discount,從數據庫查出來以discount字段命名;且以vip_discount為主。

意思是如果vip_discount不為空,就返回它的值,若它的值為空就要進一步判斷simple_discount字段是否為空,如果不為空就返回simple_discount的值,否則就返回一個空字符串。

這里我就想到了可不可以使用ifnull嵌套來判斷達到我的目的。

在網上查了許久也沒有發現有類似的博客,就尋思自己試試不就行啦:

select ifnull(vip_discount,ifnull(simple_discount,"")) as discount from A;

這樣就解決問題了,此SQL語句也可以在后面添加條件語句來補充其他條件查詢。

MYSQL之ifnull的那些坑

廢話不多說,直接看SQL:

UPDATE
    lb_user u
SET u.user_level = (
    SELECT
        IFNULL(levelid, u.user_level)
    FROM lb_user_level
    WHERE `status` = 1 AND levelid > u.user_level
    AND (upgrade_score < u.empirical OR upgrade_total_money < u.total_consumption_money)
    ORDER BY levelid DESC
    LIMIT 1
);

這個SQL乍一看沒什么問題,執行的時候也成功了,可再次執行就修改出錯,原因是根據當前的條件無法檢索出數據,返回數據為空,注意是數據為空,沒有這條數據,而不是有這條數據存在該字段為空,經過排查,修改SQL如下:

UPDATE
    lb_user u
SET u.user_level = IFNULL((
    SELECT
        levelid
    FROM lb_user_level
    WHERE `status` = 1 AND levelid > u.user_level
    AND (upgrade_score < u.empirical OR upgrade_total_money < u.total_consumption_money)
    ORDER BY levelid DESC
    LIMIT 1
), u.user_level);

經過修改后執行就成功了,并且不存在IFNULL失效的情況;

總結原因是因為:

MYSQL中IFNULL僅可以判斷該數據存在的情況下為NULL,而不能判斷該條數據沒有查詢到而為NULL的情況。

感謝各位的閱讀,以上就是“MySQL ifnull的嵌套使用方法”的內容了,經過本文的學習后,相信大家對MySQL ifnull的嵌套使用方法這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

华蓥市| 新巴尔虎右旗| 扶风县| 台东市| 昭通市| 星子县| 江安县| 玛曲县| 江口县| 石嘴山市| 景泰县| 岫岩| 兴山县| 沙坪坝区| 武平县| 同仁县| 浦东新区| 商都县| 县级市| 志丹县| 荥经县| 五台县| 吴江市| 锡林郭勒盟| 浠水县| 襄樊市| 宣城市| 泸西县| 浦城县| 台东市| 青浦区| 砚山县| 济阳县| 三原县| 乐平市| 庆城县| 敦煌市| 淄博市| 建宁县| 和硕县| 抚松县|