簡體   English   中英

有MySQL存儲過程的問題

[英]Having Issue with MySQL Stored Procedure

在下面的過程中我有兩個參數 - 當我運行時應該填充兩個參數。 我希望這些參數是可選的,如果我填充第一個數據應該基於一個參數進行過濾,如果我填充secand一個並且保留null第一個數據應該基於secand參數進行過濾,如果我傳遞了兩個參數它應該基於過濾器兩個參數,如果我沒有傳遞參數,它不應該被過濾。

DROP PROCEDURE IF EXISTS medatabase.SP_rptProvince2;
CREATE PROCEDURE medatabase.`SP_rptProvince2`(
IN e_Region VARCHAR(500),
IN e_Province VARCHAR(500)
)
BEGIN

  DECLARE strQuery VARCHAR(1024);
  DECLARE stmtp   VARCHAR(1024);


    SET @strQuery = CONCAT('SELECT * FROM alldata where 1=1 ');
   -- IF e_region IS NOT NULL THEN


    -- SET @strQuery = CONCAT(@strQuery, 'AND regionName'=e_Region);
   -- END IF;

    IF e_Region IS NOT NULL THEN
        SET @strQuery = CONCAT(@strQuery, ' AND regionName = "',e_Region,'"');


    IF e_Province IS NOT NULL THEN
        SET @strQuery = CONCAT(@strQuery, ' AND provinceName = "',e_Province,'"');

   END IF;
   END IF;

  PREPARE  stmtp FROM  @strQuery;
  EXECUTE  stmtp;
 End;

MySQL程序不支持可選參數。 你必須做你正在做的事情(傳入並測試NULL )。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM