3

我有一个存储过程,它接受像这样的输入

myProcedure("Fashion,Sports", "Shirts, Pants", null, null , "0,100")

myProc( productType, Item, ProductID, costprice, minMaxQuantity);

现在对于第一个参数,myProcedure创建一个类似的 mysql 查询

Select * from myTable where ProductType in ('Fashion,'Sports')
and Item in ('Shirts','Pants');

为了创建“in”语句部分,我使用 mysql 的“Repalce”方法

SET whrClause = REPLACE(productType, "," ," ',' ");

这样我就可以做出正确的查询,甚至得到想要的结果。

但问题是,有时我在输入中得到

myProcedure("Adm/Husleie/Royalty,Fashion,Sports", "Shirts, Pants", null, null , "0,100");

现在对于第一个参数的第一部分(即Adm/Husleie/Royalty) Replace 方法无法正常工作。我没有得到结果ProductType = Adm/Husleie/Royalty,但对于时尚和体育,我得到了结果。有人能帮我吗。如何使用绝对字符串,也可以使用替换方法。

4

1 回答 1

0

试试这个:

将您的替换语句更改为

SET whrClause =REPLACE(REPLACE(productType, "," ," ',' "),"/" ," ',' ");
于 2012-09-18T10:37:04.443 回答