控制流程函數(shù)
創(chuàng)新互聯(lián)建站專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、烏什網(wǎng)絡(luò)推廣、微信小程序開發(fā)、烏什網(wǎng)絡(luò)營銷、烏什企業(yè)策劃、烏什品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)建站為所有大學(xué)生創(chuàng)業(yè)者提供烏什建站搭建服務(wù),24小時(shí)服務(wù)熱線:18980820575,官方網(wǎng)址:www.cdcxhl.com
CASE value WHEN [compare-value] THEN result [WHEN
[compare-value] THEN result ...] [ELSE result] END CASE WHEN [condition]
THEN result [WHEN [condition] THEN result ...] [ELSE result] END
例:
mysql SELECT IF(12,'yes ','no');
- 'yes'
有時(shí)候在修改某一個(gè)字段的值得時(shí)候我們需要根據(jù)當(dāng)前字段的不同狀態(tài)進(jìn)行不同處理,
比如對(duì)于用戶表,我們需要記錄下來用戶被訪問的次數(shù),但訪問次數(shù)的初始值為 null。
如下:
CREATE TABLE `test` (
`id` ?int(11) NULL DEFAULT NULL ,
`name` ?varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
`visit_num` ?int(11) NULL DEFAULT NULL
)
我們就可以使用如下的 sql 進(jìn)行判斷和修改
UPDATE test set visit_age=if(visit_num is null,1,visit_num+1) where id=1。
mysql中沒有if可以使用case when then end 來代替;
例如:查詢語句select case 字段 when 1 then '一'
when 2 then '二' end from 表名;
ifnull函數(shù)參數(shù)解析:第一個(gè)參數(shù)為 字段的名字,第二個(gè)參數(shù)為 最終替換成的值。如果 第一個(gè)字段的值 為 NULL,查詢的結(jié)果中 會(huì)被 替換成 0.
三目運(yùn)算:IF(expr1,expr2,expr3) 。如果 expr1是TRUE,則IF()的返回值為expr2; 否則返回值則為expr3
正則解析:如果 第一個(gè) 參數(shù)中的正則 匹配成功,if() 的值 為 第二個(gè)參數(shù)的值。否則為 第三個(gè)參數(shù)的值。
答案(先把 所有 學(xué)生的語文成績 查出來 作為一個(gè) 新表,然后 對(duì)新表 進(jìn)行 分組 聚合):
答案: