婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > MySQL ifnull的嵌套使用說明

MySQL ifnull的嵌套使用說明

熱門標(biāo)簽:大眾點評星級酒店地圖標(biāo)注 云南電商智能外呼系統(tǒng)價格 智能外呼系統(tǒng)復(fù)位 臨清電話機(jī)器人 400電話可以辦理嗎 拉卡拉外呼系統(tǒng) 外東北地圖標(biāo)注 高清地圖標(biāo)注道路 話務(wù)外呼系統(tǒng)怎么樣

MySQL ifnull的嵌套使用

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

即是:

select ifnull(a,b) from A ;

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

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

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

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

在網(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ù)當(dāng)前的條件無法檢索出數(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)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • MySql中 is Null段判斷無效和IFNULL()失效的解決方案
  • MySQL IFNULL判空問題解決方案
  • mysql中null(IFNULL,COALESCE和NULLIF)相關(guān)知識點總結(jié)
  • mysql中替代null的IFNULL()與COALESCE()函數(shù)詳解
  • 淺談Mysql中類似于nvl()函數(shù)的ifnull()函數(shù)
  • MySql中的IFNULL、NULLIF和ISNULL用法詳解
  • 淺談SQLServer的ISNULL函數(shù)與Mysql的IFNULL函數(shù)用法詳解
  • mysql中IFNULL,IF,CASE的區(qū)別介紹

標(biāo)簽:定西 無錫 三明 福州 溫州 揚州 山西 阿里

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《MySQL ifnull的嵌套使用說明》,本文關(guān)鍵詞  MySQL,ifnull,的,嵌套,使用說明,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《MySQL ifnull的嵌套使用說明》相關(guān)的同類信息!
  • 本頁收集關(guān)于MySQL ifnull的嵌套使用說明的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 海安县| 惠安县| 两当县| 化州市| 馆陶县| 南丰县| 杂多县| 东莞市| 永和县| 安仁县| 高陵县| 前郭尔| 金门县| 六枝特区| 广南县| 吐鲁番市| 南部县| 策勒县| 巧家县| 霸州市| 安陆市| 济阳县| 商城县| 平陆县| 屏山县| 安多县| 鹰潭市| 南丹县| 曲麻莱县| 成都市| 西城区| 青铜峡市| 南康市| 南昌市| 普陀区| 金阳县| 九寨沟县| 鄂温| 久治县| 通渭县| 海晏县|