簡體   English   中英

MySQL:無法弄清楚如何使這項工作

[英]MySQL: Can't Figure out how make this work

我有這個 MySQL 存儲過程,這個存儲過程應該從外部startcount ,並且應該以某種方式綁定 SQL 取決於count數值。 例如當計數值為NULL我會得到整個產品列表,否則,得到限制

CREATE DEFINER=`root`@`localhost` PROCEDURE `products_get_list`(
IN start INT,
IN count INT
)
BEGIN
    CASE 
        WHEN count IS NOT NULL THEN
            (SELECT * from `products` LIMIT start OFFSET count)
        WHEN count IS NULL THEN
            (SELECT * from `products`)
    END;
END

任何幫助將不勝感激。 謝謝!

最后我想通了

CREATE DEFINER=`root`@`localhost` PROCEDURE `products_get_list`(
IN vstart INT,
IN vcount INT
)
BEGIN

    IF vcount IS NOT NULL THEN 
        SELECT * from `products` LIMIT vstart, vcount;
    ELSE
        SELECT * from `products`;
    END IF;
    
END

這也是第二種方法,這是解決這個問題的正常方法嗎?

CREATE DEFINER=`root`@`localhost` PROCEDURE `products_get_list`(
IN _start INT,
IN _count INT
)
BEGIN
    DECLARE _limit INT;
    SET _limit = (SELECT IFNULL(_count, (SELECT count(id) from `products`)));
      
    SELECT * from `products` LIMIT _start, _limit;
END

但如果有任何其他更好的方法,我會很高興知道。

暫無
暫無

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

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