0

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

例如:我有一个带有列的表PRIMARY, TRANSTYPE, DATE, AMOUNT。现在PRIMARY可以是 0 或 1,并且TRANSTYPE可以是 A、B、C。

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

目前我正在使用 PHP 执行此操作,但我想使用 MySql 存储过程执行此操作。

4

2 回答 2

1
SELECT * FROM <table>
    WHERE
         (PRIMARY="0" AND TRANSTYPE = "A") OR 
         (PRIMARY="1" AND TRANSTYPE = "B") OR 
         (PRIMARY="1" AND TRANSTYPE = "C")
于 2012-12-27T06:42:54.597 回答
1

你可以做

 CREATE PROCEDURE PROC_NAME()
    BEGIN
       select * from table
       where (TRANSTYPE = 'A' and PRIMARY = '0') 
          or (TRANSTYPE in ('B','C') and PRIMARY = '1');
    END;
于 2012-12-27T06:43:00.973 回答