五月综合激情婷婷六月,日韩欧美国产一区不卡,他扒开我内裤强吻我下面视频 ,无套内射无矿码免费看黄,天天躁,日日躁,狠狠躁

新聞動態(tài)

MySQL ifnull的嵌套使用說明

發(fā)布日期:2022-02-10 18:56 | 文章來源:腳本之家

MySQL ifnull的嵌套使用

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

即是:

select ifnull(a,b) from A ;

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

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

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

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

在網(wǎng)上查了許久也沒有發(fā)現(xiàn)有類似的博客,就尋思自己試試不就行啦:

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乍一看沒什么問題,執(zhí)行的時候也成功了,可再次執(zhí)行就修改出錯,原因是根據(jù)當前的條件無法檢索出數(shù)據(jù),返回數(shù)據(jù)為空,注意是數(shù)據(jù)為空,沒有這條數(shù)據(jù),而不是有這條數(shù)據(jù)存在該字段為空,經(jīng)過排查,修改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);

經(jīng)過修改后執(zhí)行就成功了,并且不存在IFNULL失效的情況;

總結(jié)原因是因為:

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

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持本站。

香港穩(wěn)定服務器

版權(quán)聲明:本站文章來源標注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務器上建立鏡像,否則將依法追究法律責任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學習參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。

實時開通

自選配置、實時開通

免備案

全球線路精選!

全天候客戶服務

7x24全年不間斷在線

專屬顧問服務

1對1客戶咨詢顧問

在線
客服

在線客服:7*24小時在線

客服
熱線

400-630-3752
7*24小時客服服務熱線

關(guān)注
微信

關(guān)注官方微信
頂部