На самом деле, версия принятого ответа открыта для внедрения SQL, если вызывающая сторона неправильно параметризовала вызов хранимой процедуры. Я бы порекомендовал использовать подготовленную инструкцию в хранимой процедуре следующим образом для обеспечения безопасности вместо того, чтобы полагаться на вызывающего:
DELIMITER $$
CREATE PROCEDURE `DeleteDataByTransactionID`
(
TransactionID VARCHAR(50)
)
BEGIN
SET @sql =
"DELETE
FROM sqlstatements
WHERE
tempsql LIKE CONCAT('%', ?, '%')";
SET @transid = TransactionID;
PREPARE stmt FROM @sql;
EXECUTE stmt USING @transid;
DEALLOCATE PREPARE stmt;
END
$$