空參數值我有表名table_abc
它包含coloumns name varchar(255) NOT NULL,store_id INT(11) NOT NULL,brand varchar(255) NOT NULL,status INT(11) NOT NULL
。如何獲取導致動態MySQL存儲過程
表 -
name | store_id | brand | status
dress 1 only 1
dress 2 vero moda 1
dress 2 ZARA 1
dress 2 vero moda 1
dress 3 only 1
dress 3 vero moda 1
dress 1 only 1
dress 2 ZARA 1
現在我要動態的結果,如果在參數傳遞NULL或空''
值,那麼它可以給particuler參數作爲結果的完整行。例如:
delimiter //
DROP PROCEDURE IF EXISTS sp_test//
CREATE PROCEDURE sp_test(
list_of_name VARCHAR(255),
list_of_ids VARCHAR(100),
list_of_brand VARCHAR(100))
BEGIN
SET @query := CONCAT("SELECT name,store_id,brand,status FROM `table_abc`
WHERE name in (" , list_of_name ,") AND status='1'
AND store_id in (" , list_of_ids OR list_of_ids IS NULL, ")
AND brand in (" , list_of_brand , ")
ORDER BY RAND() LIMIT 0,16");
PREPARE stmt FROM @query;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END//
delimiter ;
我們試圖用null值參數得到結果。但store_id無法在此過程中使用。或者null也不起作用。 請幫助
mysql> call sp_test("'dress'",'1,2,3',"'only','vero moda','ZARA'");
mysql> call sp_test("'dress'",null,"'only','vero moda','ZARA'");
mysql> call sp_test("'dress'",'null',"'only','vero moda','ZARA'");
什麼是store_id- INT,CH的類型AR或VARCHAR? –
@KeyurPanchal name varchar(255),store_id INT(11),brand varchar(255),狀態INT(11)。先生類型已定義 –