mysql中寫判斷語句的方法總結
mysql中寫判斷語句的方法:
方法一.CASE函數(shù)
case函數(shù)語法:
CASE condition WHEN value1 THEN returnvalue1 WHEN value2 THEN returnvalue2 WHEN value3 THEN returnvalue3 …… ELSE defaultvalue END
舉例:
SELECT username,(CASE sex WHEN 1 THEN '男' WHEN 2 THEN '女' ELSE '未知' END) as sex FROM user;
查詢結果如圖:
方法二.IF()函數(shù)
CASE函數(shù)可以實現(xiàn)非常復雜的邏輯判斷,實現(xiàn)滿足條件就A,否則就B這樣簡單的判斷邏輯的話,CASE函數(shù)就顯得臃腫。MYSQL提供了IF()函數(shù)用于簡化這種邏輯判斷,其語法格式如下:IF(condition,A,B)
如果condition條件為真,就返回A,否則返回B。所以如果有多個條件,就無法使用IF函數(shù)。IF()返回一個數(shù)字或字符串。
select username,if(sex=1,'男','女') as sex from user;
查詢結果如圖:
可以看到,username為zhangsan的顯示性別為女,因為我們條件是sex=1為男,其它都會女。所以IF函數(shù)用于只有兩種情況的判斷。mysql還有一個IFNULL(value1,value2)函數(shù),這個函數(shù)一般用來替換NULL值的,我們知道NULL值是不能參與數(shù)值運算的。
方法三.字符串操作ELT()
語法:
ELT(N,str1,str2,str3,...)
如果 N = 1,返回 str1,如果N = 2,返回 str2,等等。如果 N 小于 1 或大于參數(shù)的數(shù)量,返回 NULL。
SELECT username,ELT(sex,'男','女','未知') as sex FROM user
查詢結果如圖:
內容擴展:
mysql條件判斷語句
業(yè)務場景中,比如一個用戶有幾種狀態(tài)(1:有效、2:無效、3:其他),這時候查詢就需要用到條件語句。
語法:
CASE 字段 WHEN `條件1` THEN `結果1` WHEN `條件2` THEN `結果2` WHEN ... ELSE `其他結果` END
示例:
SELECT id,name, (CASE status WHEN 1 THEN '有效' WHEN 2 THEN '無效' ELSE '其他' END) AS status FROM user
到此這篇關于mysql中寫判斷語句的方法總結的文章就介紹到這了,更多相關mysql中如何寫判斷語句內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
mysql中distinct和group?by的區(qū)別淺析
distinct簡單來說就是用來去重的,而group by的設計目的則是用來聚合統(tǒng)計的,兩者在能夠實現(xiàn)的功能上有些相同之處,但應該仔細區(qū)分,下面這篇文章主要給大家介紹了關于mysql中distinct和group?by區(qū)別的相關資料,需要的朋友可以參考下2023-05-05淺談mysql中concat函數(shù),mysql在字段前/后增加字符串
下面小編就為大家?guī)硪黄獪\談mysql中concat函數(shù),mysql在字段前/后增加字符串。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-02-02解析:內聯(lián),左外聯(lián),右外聯(lián),全連接,交叉連接的區(qū)別
本篇文章是對內聯(lián),左外聯(lián),右外聯(lián),全連接,交叉連接的區(qū)別進行了詳細的分析介紹,需要的朋友參考下2013-07-07Navicat遠程連接SQL Server并轉換成MySQL步驟詳解
最近遇到一個需求是將SQL Server轉換為 MySQL的格式,由于不想在本地安裝 SQL Server,所以決定在遠程的 Windows 服務器上安裝,并在本地使用Navicat遠程連接它,然而在實現(xiàn)過程中遇到了諸多問題,記錄于此。感興趣的朋友們下面來一起學習學習吧。2017-01-01