繁体   English   中英

MYSQL函数与if elseif else

[英]MYSQL function with if elseif else

我如何将其放在可以使用设置值的函数中,例如函数xy(@ q,@ p)

SET @q='10';
SET @p='5';
SELECT @a_rows := COUNT(*) FROM 'main1' WHERE status='0' && price<= @p && quantity >     '0';

IF @a_rows = '0' THEN

INSERT INTO detail1 (quantity,price,status) VALUES (@q,@p,'0');
INSERT INTO detail2 (quantity,price,status) VALUES (@q,@p,'0');

ELSEIF @a_rows='1' THEN
INSERT INTO detail3 (quantity,price,status) VALUES (@q,@p,'0');

ELSE 
; 
ENDIF

做到我在上一条评论中所说的...只是使用一个案例。 像这样

注意:您不能只运行一堆插入程序,而必须分别装入每个插入器...

SET @q='10';
SET @p='5';
SELECT @a_rows := COUNT(*) FROM 'main1' WHERE status='0' && price<= @p && quantity >     '0';

INSERT INTO detail1 (quantity,price,status)
values
(
    (CASE @a_rows WHEN 0 THEN @q ELSE NULL END),
    (CASE @a_rows WHEN 0 THEN @p ELSE NULL END),
    (CASE @a_rows WHEN 0 THEN 0 ELSE NULL END)
);

INSERT INTO detail2 (quantity,price,status)
values
(
    (CASE @a_rows WHEN 0 THEN @q ELSE NULL END),
    (CASE @a_rows WHEN 0 THEN @p ELSE NULL END),
    (CASE @a_rows WHEN 0 THEN 0 ELSE NULL END)
);

INSERT INTO detail3 (quantity,price,status)
values
(
    (CASE @a_rows WHEN 1 THEN @q ELSE NULL END),
    (CASE @a_rows WHEN 1 THEN @p ELSE NULL END),
    (CASE @a_rows WHEN 1 THEN 0 ELSE NULL END)
);

演示

你可以试试这个

CASE @a_rows 
WHEN 0 THEN
    INSERT INTO detail1 (quantity,price,status) VALUES (@q,@p,'0');
    INSERT INTO detail2 (quantity,price,status) VALUES (@q,@p,'0');
WHEN 1 THEN
    INSERT INTO detail3 (quantity,price,status) VALUES (@q,@p,'0');
ELSE 
    #If neither 0 or 1 
END CASE;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM