[英]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.