BEGIN
    SET @RS=0;
    SELECT *,@RS:=COUNT(id)
    FROM X
    WHERE type = 2 IF (@RS= 0) THEN
        SELECT * FROM X
 End IF;
END如上代码,当 @RS= 0 时,返回了俩个结果集。如何只返回一个?

解决方案 »

  1.   

    本意:先查询type=2的数据,有则返回,无责返回 type 等于任何值的数据。结果发现上面的代码当@RS=0时,不仅返回了第一个SELECT的结果集(空结果集),又返回了“SELECT * FROM X”的结果集,这样就返回了俩个结果集。我想得到的是不管在type=2是否有数据的情况下,只返回一个结果集供上面的程序分析。
    请教如何实现?
      

  2.   


    BEGIN
        SET @RS=0;
        SELECT COUNT(id) into @RS
        FROM X
        WHERE type = 2 IF (@RS= 0) THEN
            SELECT * FROM X
     else
       SELECT * FROM X WHERE type = 2
     End IF;
    END