MySql存储过程IF ELSE和while循环

时间:2012-12-27 06:36:37

标签: mysql database stored-procedures

我想在MySQL中创建一个存储过程,我循环遍历记录并在特定条件为真时返回行。

例如:我有一个包含PRIMARY, TRANSTYPE, DATE, AMOUNT列的表格。现在PRIMARY可以是0或1,TRANSTYPE可以是A,B,C。

现在我要做的是返回行PRIMARY="0" if TRANSTYPE = "A" and return row where PRIMARY="1" if TRANSTYPE = "B" or TRANSTYPE = "C"

目前我正在用PHP做这个,但我想用MySql存储过程来做。

2 个答案:

答案 0 :(得分:1)

SELECT * FROM <table>
    WHERE
         (PRIMARY="0" AND TRANSTYPE = "A") OR 
         (PRIMARY="1" AND TRANSTYPE = "B") OR 
         (PRIMARY="1" AND TRANSTYPE = "C")

答案 1 :(得分:1)

你可以做到

 CREATE PROCEDURE PROC_NAME()
    BEGIN
       select * from table
       where (TRANSTYPE = 'A' and PRIMARY = '0') 
          or (TRANSTYPE in ('B','C') and PRIMARY = '1');
    END;