mysql的trigger還是有很多限制的地方:
站在用戶的角度思考問(wèn)題,與客戶深入溝通,找到敘州網(wǎng)站設(shè)計(jì)與敘州網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名注冊(cè)、網(wǎng)頁(yè)空間、企業(yè)郵箱。業(yè)務(wù)覆蓋敘州地區(qū)。
1
一次只能定義一個(gè)觸發(fā)動(dòng)作。
create
trigger
or_sal
before
insert
on
teacher
for
each
row
--每次只定義一個(gè)吧
2
設(shè)置值必須使用set語(yǔ)句
set
new.sal
=
4000;
--要加set
3
分隔符的問(wèn)題
看是使用什么客戶端工具,根據(jù)報(bào)錯(cuò)結(jié)果修正吧。有的工具對(duì)分隔符支持不好,可以在mysql命令行執(zhí)行試下。
處理“我想查 IF中同時(shí)滿足這兩個(gè)條件的總數(shù)”
我的理解是:
SELECT?COUNT(*)?FROM?tougao_record?WHERE?accept_company_id=100?AND?channel_type=1?AND?check_status=6
下面是if語(yǔ)句里面多個(gè)條件的使用。
IF語(yǔ)句的標(biāo)準(zhǔn)形式IF(expr1,expr2,expr3)
expr1可以是單個(gè)表達(dá)式也可以是多個(gè)表達(dá)式,且,或||,非!
上面的語(yǔ)句可以這樣寫
select COUNT(IF(channel_type=1 check_status=6),1,0) FROM tougao_record WHERE accept_company_id=100
但是就我的理解,mysql在統(tǒng)計(jì)count的時(shí)候,不管count括號(hào)里面的內(nèi)容,只管是否為空,查詢的結(jié)果不為空就計(jì)數(shù)。
我是處理下面的問(wèn)題用到了,可以直接跑一下我給的sql語(yǔ)句。
SET?@destval:='0.63';
SET?@valforcomp='0.62';
SELECT?
IF(@destval?REGEXP?'^[\-\+.]?([0-9.]+)$'??@valforcomp?REGEXP?'^[\-\+.]?([0-9.]+)$',
IF(ABS(@destval-@valforcomp)0.02,1,0),NULL)?result
上面的REGEXP只是簡(jiǎn)單的用來(lái)判斷是否是數(shù)字,通過(guò)這個(gè)我還發(fā)現(xiàn)了另一個(gè)問(wèn)題,
SELECT?ABS(@destval-@valforcomp);
這個(gè)查詢出來(lái)不是等于0.01而是0.010000000000000009
不知道有沒(méi)有幫到你。
IF i = 3 THEN
set i=i+3;
ELSEIF i = 4 THEN
set i=i+4;
ELSE
set i=i+5;
END IF;
case i = 3 then
set i=i+3;
case i = 4 then
set i=i+4;
end
1、if :用于做條件判斷,具體的語(yǔ)法結(jié)構(gòu)為:
在if條件判斷的結(jié)構(gòu)中,ELSE IF 結(jié)構(gòu)可以有多個(gè),也可以沒(méi)有。 ELSE結(jié)構(gòu)可以有,也可以沒(méi)有。
案列:
根據(jù)定義的分?jǐn)?shù)score變量,判定當(dāng)前分?jǐn)?shù)對(duì)應(yīng)的分?jǐn)?shù)等級(jí)。
score = 90分,等級(jí)為優(yōu)秀。
score = 80分,等級(jí)為良好
score = 60分,等級(jí)為及格
score 60分,等級(jí)為不及格。
上述的需求我們雖然已經(jīng)實(shí)現(xiàn)了,但是也存在一些問(wèn)題,比如:score 分?jǐn)?shù)我們是在存儲(chǔ)過(guò)程中定義 死的,而且最終計(jì)算出來(lái)的分?jǐn)?shù)等級(jí),我們也僅僅是最終查詢展示出來(lái)而已。
那么我們能不能,把score分?jǐn)?shù)動(dòng)態(tài)的傳遞進(jìn)來(lái),計(jì)算出來(lái)的分?jǐn)?shù)等級(jí)是否可以作為返回值返回呢? 答案是肯定的,我們可以通過(guò)接下來(lái)所講解的 參數(shù) 來(lái)解決上述的問(wèn)題。
2、參數(shù)的類型
主要分為以下三種:IN、OUT、INOUT。 具體的含義如下:
(1)in :該類參數(shù)作為輸入,也就是需要調(diào)用時(shí)傳入值 默認(rèn)
(2)out:該類參數(shù)作為輸出,也就是該參數(shù)可以作為返回值
(3)inout:既可以作為輸入?yún)?shù),也可以作為輸出參數(shù)
用法:
案例一:
案列二:
MYSQL沒(méi)有IF的語(yǔ)句,MYSQL使用的是MYSQL特色的SQL語(yǔ)句,它的WHERE和IF差不多,同樣的條件判斷 SELECT 字段 FROM 表名 where 條件