最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL?流程控制函數(shù)示例詳解

 更新時(shí)間:2025年09月29日 11:59:05   作者:加洛斯  
本文介紹MySQL流程控制函數(shù)及CASE語句,涵蓋IF、IFNULL、NULLIF三種函數(shù)和簡單/搜索CASE兩種結(jié)構(gòu),用于條件判斷和邏輯控制,提升SQL處理靈活性,本文給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧

MySQL提供了多種流程控制函數(shù),允許用戶根據(jù)條件來改變 SQL語句的執(zhí)行邏輯。這些函數(shù)在數(shù)據(jù)查詢、更新和存儲過程中都非常有用,在本文您將能學(xué)習(xí)到如下函數(shù):

  1. IF(expr, v1, v2)
  2. IFNULL(v1, v2)
  3. NULLIF(expr1, expr2)
  4. 簡單 CASE 語句
  5. 搜索 CASE 語句

一、條件選擇函數(shù)

這類函數(shù)通常用于簡單的“如果…則…”邏輯。

1.1 IF(expr, v1, v2)

這是最直接的流程控制函數(shù),類似于三元運(yùn)算符。

語法IF(condition, true, false)
功能: 如果條件表達(dá)式 condition 為真(非零、非NULL),則返回 true,否則返回false。

示例

其表結(jié)構(gòu)如下

-- 如果分?jǐn)?shù)大于等于60,返回‘及格',否則返回‘不及格'
SELECT name, score, IF(score >= 60, '及格', '不及格') AS result FROM student;
-- 處理NULL值
SELECT name, class,IF(class IS NULL, '沒有班級', '有班級') AS "班級" FROM student;

其結(jié)果如下:(我們要重點(diǎn)關(guān)注一下第二個(gè)結(jié)果,IF函數(shù)檢測的第一個(gè)參數(shù)是非零、非NULL的為真,所以如果是空則也會將其判斷為


1.2 IFNULL(v1, v2)

專門用于檢查值是否為NULL。

語法IFNULL(VALUE1,VALUE2)
功能: 如果VALUE1的值不為空(特指NULL),則返回VALUE1,否則返回VALUE2。
示例

其表結(jié)構(gòu)如下

-- 如果郵箱為NULL,顯示‘N/A'
SELECT name, class,IFNULL(class,"沒有班級") AS "班級" FROM student;

其結(jié)果為

1.3 NULLIF(expr1, expr2)

用于比較兩個(gè)表達(dá)式。如果它們相等,則返回 NULL,否則返回第一個(gè)表達(dá)式。
語法NULLIF(expression1, expression2)
功能: 如果 expression1 等于 expression2,則返回 NULL,否則返回 expression1。這在避免除零錯誤等場景中非常有用。
示例

其表結(jié)構(gòu)如下

-- 查詢變動年紀(jì)
SELECT name, class,new_class,NULLIF(class,new_class) AS "變動年級" FROM student;
-- 避免除零錯誤
SELECT name, class,score,100/NULLIF(score,0) AS "簡單除法" FROM student;

其結(jié)果如下

二、Case 語句

CASE 語句提供了比IF() 函數(shù)更強(qiáng)大、更靈活多分支條件判斷能力。它有兩種形式:簡單 CASE搜索 CASE。

2.1 簡單 CASE 語句

將某個(gè)表達(dá)式與一系列簡單的值進(jìn)行比較。
語法

CASE expression
    WHEN value1 THEN result1
    WHEN value2 THEN result2
    ...
    [ELSE else_result]
END

功能: 將 expression 的值依次與每個(gè) WHEN 子句中的 value 進(jìn)行比較。如果匹配,則返回對應(yīng)的 result。如果都不匹配,則返回 ELSE 部分的結(jié)果;如果沒有 ELSE 且無匹配項(xiàng),則返回 NULL

示例

其表結(jié)構(gòu)如下

SELECT
    `name`,
    score,
    CASE score
        WHEN 'A' THEN "優(yōu)秀"  
        WHEN 'B' THEN "良好"  
        WHEN 'C' THEN "及格"  
        WHEN 'D' THEN "不及格"  
        ELSE "沒考試"
    END AS "成績"
FROM student;

其結(jié)果如下

2.2 搜索 CASE 語句

允許在 WHEN 子句中使用更復(fù)雜的條件表達(dá)式,而不僅僅是等值比較。
示例

其表結(jié)構(gòu)如下

SELECT
    `name`,
    score,
    CASE
        WHEN score < 60 THEN "不及格"
        WHEN score >= 60 AND score < 70 THEN "及格"
        WHEN score >= 70 AND score < 80 THEN "良好"
        WHEN score >= 80 THEN "優(yōu)秀"
        ELSE "沒考試"
    END AS grade_level
FROM student;

其結(jié)果如下

到此這篇關(guān)于MySQL 流程控制函數(shù)的文章就介紹到這了,更多相關(guān)mysql流程控制函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 檢查MySQL中的列是否為空或Null的常用方法

    檢查MySQL中的列是否為空或Null的常用方法

    在MySQL數(shù)據(jù)庫中,我們經(jīng)常需要檢查某個(gè)列是否為空或Null,空值表示該列沒有被賦值,而Null表示該列的值是未知的或不存在的,在本文中,我們將討論如何在MySQL中檢查列是否為空或Null,并探討不同的方法和案例,需要的朋友可以參考下
    2023-11-11
  • MySQL數(shù)據(jù)庫實(shí)現(xiàn)高可用架構(gòu)之MHA的實(shí)戰(zhàn)

    MySQL數(shù)據(jù)庫實(shí)現(xiàn)高可用架構(gòu)之MHA的實(shí)戰(zhàn)

    本文主要介紹了MySQL數(shù)據(jù)庫實(shí)現(xiàn)高可用架構(gòu)之MHA的實(shí)戰(zhàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • mysql中數(shù)據(jù)統(tǒng)計(jì)的技巧備忘錄

    mysql中數(shù)據(jù)統(tǒng)計(jì)的技巧備忘錄

    mysql是常用數(shù)據(jù)庫,對于數(shù)字操作相關(guān)的東西相當(dāng)方便,這篇文章主要給大家介紹了關(guān)于mysql中數(shù)據(jù)統(tǒng)計(jì)技巧的相關(guān)資料,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2018-05-05
  • MySQL用正則表達(dá)式進(jìn)行搜索功能實(shí)例

    MySQL用正則表達(dá)式進(jìn)行搜索功能實(shí)例

    MySQL中的正則表達(dá)式是一種強(qiáng)大的文本匹配工具,它允許你使用特定的模式來搜索、替換或檢查字符串中的數(shù)據(jù),這篇文章主要介紹了MySQL用正則表達(dá)式進(jìn)行搜索功能的相關(guān)資料,需要的朋友可以參考下
    2025-08-08
  • Ubuntu與windows雙系統(tǒng)下共用MySQL數(shù)據(jù)庫的方法

    Ubuntu與windows雙系統(tǒng)下共用MySQL數(shù)據(jù)庫的方法

    ubuntu系統(tǒng)和windows系統(tǒng)雙系統(tǒng)共用是用戶喜歡使用的方式之一,而MySQL是一個(gè)小型關(guān)系型數(shù)據(jù)庫管理系統(tǒng),在Windows平臺中常以WAMP方式搭配使用,在Linux平臺中常以LAMP組合形式出現(xiàn),下面的方法可以使得Ubuntu平臺共用Windows平臺中的MySQL數(shù)據(jù)庫
    2012-01-01
  • MySQL自增列解析(Auto_increment)

    MySQL自增列解析(Auto_increment)

    MySQL數(shù)據(jù)庫為列提供了一種自增屬性,本文主要介紹了MySQL自增列解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-09-09
  • mysql死鎖和分庫分表問題詳解

    mysql死鎖和分庫分表問題詳解

    這篇文章主要給大家介紹了關(guān)于mysql死鎖和分庫分表問題的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • Mysql慢查詢優(yōu)化方法及優(yōu)化原則

    Mysql慢查詢優(yōu)化方法及優(yōu)化原則

    這篇文章主要介紹了Mysql慢查詢優(yōu)化方法及優(yōu)化原則,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下
    2019-05-05
  • Linux下mysql 8.0.25 安裝配置方法圖文教程

    Linux下mysql 8.0.25 安裝配置方法圖文教程

    這篇文章主要為大家詳細(xì)介紹了Linux下mysql 8.0.25 安裝配置方法圖文教程,文中安裝步驟介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • JDBC如何連接mysql

    JDBC如何連接mysql

    這篇文章主要介紹了JDBC如何連接mysql問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-04-04

最新評論

商丘市| 旺苍县| 邵武市| 澳门| 屏山县| 清原| 海宁市| 贵州省| 祁阳县| 胶南市| 颍上县| 闻喜县| 黔江区| 蒙城县| 阿城市| 元谋县| 南宁市| 朝阳市| 丽江市| 双峰县| 望都县| 黄石市| 库尔勒市| 西乌| 华宁县| 钟祥市| 富民县| 台前县| 南郑县| 凌海市| 咸丰县| 昌都县| 台中县| 嘉鱼县| 万宁市| 两当县| 漳州市| 广水市| 大英县| 南充市| 平塘县|