gpt4 book ai didi

mysql - 如何让我的存储过程运行?

转载 作者:行者123 更新时间:2023-11-29 10:46:38 26 4
gpt4 key购买 nike

我正在使用 MySQL 创建一个存储过程,该过程将使用各种搜索过滤器进行搜索。我一直在阅读有关如何完成此任务的多篇文章,虽然它似乎对每个使用过其存储过程的人都有效,但我无法弄清楚为什么当我这样做时它不起作用。这是我正在尝试做的事情:

Create Procedure spSearchInventory
@SKU int(25),
@ItemName varchar(40),
@RetailPrice decimal(7,2),
@WholesalePrice decimal(7,2),
@DateOfPurchase date,
@DateOfPost date
As
Begin

SELECT * FROM inventory WHERE
(SKU = @SKU OR @SKU IS NULL) AND
(ItemName = @ItemName OR @ItemName IS NULL) AND
(RetailPrice = @RetailPrice OR @RetailPrice IS NULL) AND
(WholesalePrice = @WholesalePrice OR @WholesalePrice IS NULL) AND
(DateOfPurchase = @DateOfPurchase OR @DateOfPurchase IS NULL) AND
(DateOfPost = @DateOfPost OR @DateOfPost IS NULL)
END

它给我的错误就在顶部“@SKU int (25)”。它读取的错误是“语法错误:‘@SKU’(在文本后缀处)在此位置不是有效输入。我是 SQL 新手,所以这可能是一个简单的问题,但是,这与存储的完全相同其他人已经使用过并获得成功的过程,所以我不确定为什么当我尝试这样做时它不起作用。

最佳答案

布兰登,您在过程中使用 SQL Server 语法。使用 MySQL 语法:

create procedure spSearchInventory (
in_SKU int,
in_ItemName varchar(40),
in_RetailPrice decimal(7,2),
in_WholesalePrice decimal(7,2),
in_DateOfPurchase date,
in_DateOfPost date
)
begin

SELECT *
FROM inventory
WHERE
(SKU = in_SKU OR in_SKU IS NULL) AND
(ItemName = in_ItemName OR in_ItemName IS NULL) AND
(RetailPrice = in_RetailPrice OR in_RetailPrice IS NULL) AND
(WholesalePrice = in_WholesalePrice OR in_WholesalePrice IS NULL) AND
(DateOfPurchase = in_DateOfPurchase OR in_DateOfPurchase IS NULL) AND
(DateOfPost = in_DateOfPost OR in_DateOfPost IS NULL);

END

关于mysql - 如何让我的存储过程运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44442187/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com