Я пытаюсь выполнить следующую инструкцию запроса, содержащуюся в хранимой процедуре - Где все P ... являются параметрами SP (ex 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 как строку ИДС как 1,2,3 При попытке выполнить оператор, только первым идентификатор считается. Напр. 1,2,3 используется только 1, если используется 3,2,1, используется только 3.
Может кто-нибудь сказать, что не так в этом вопросе?
Спасибо Pablo. Есть ли другой способ, как разделение строки в массив? – IrfanRaza
Попробуйте сделать то, что я показал вам в последнем примере. Не используйте свой список в качестве параметра для вашего запроса, но конкатенируйте его в исходной строке. Убедитесь, что вы дезинфицируете свой ввод, чтобы не добавлять уязвимости SQLInjection к вашему коду. –
Еще раз спасибо Пабло. Работает. – IrfanRaza