我試圖執行包含在存儲過程中下面的查詢語句幫助 - 凡均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