我试图执行包含在存储过程中下面的查询语句帮助 - 凡均P ...是参数SP(前PInitialDateFrom)。需要与MySQL查询
SET @stmt_text = CONCAT('SELECT AccountID, Firstname as ClientName, EmailID
, ProductID, InitialPurchaseDate as Purchasedate
FROM client_account
WHERE IsRemoved = 0
AND (InitialPurchasedate between ? and ?)
AND ProductId IN (?)');
PREPARE stmt FROM @stmt_text;
SET @initDt1=PInitialDateFrom, @initDt2 = PInitialDateTo, @inlist=PIDs
, @stmt_text = null;
EXECUTE stmt USING @initDt1, @initDt2, @inlist;
DEALLOCATE PREPARE stmt;
我传递PID的作为ID的串像1,2,3 当我尝试执行语句,只有第一个ID被考虑。例如。 1,2,3仅被使用1被采用,如果3,2,1被使用则仅被采用3。
谁能告诉什么错此查询?
谢谢巴勃罗。有没有其他方式像分割字符串到数组中? – IrfanRaza 2011-05-08 12:10:25
试着按照我在最后一个例子中给你看的方式去做。不要将您的列表用作查询的参数,而要将其连接到原始字符串中。确保您对输入进行了清理,以免您将SQL注入漏洞添加到您的代码中。 – 2011-05-08 12:16:06
再次谢谢帕布罗。它的工作。 – IrfanRaza 2011-05-08 12:22:49