![](/img/trans.png)
[英]MySQL 5.5.9: Can't figure out how to get my subquery to work properly
[英]MySQL: Can't Figure out how make this work
我有這個 MySQL 存儲過程,這個存儲過程應該從外部start
和count
,並且應該以某種方式綁定 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.