1
我在做什么。MySQL ROW_COUNT()在Prepare语句中不起作用
我有一个程序,我删除行。
我越来越var_SelectedIds
为,
分离UUID()
然后
SET @var_SQLStr = '';
SET @var_SQLStr = CONCAT(@var_SQLStr ,'Delete ');
SET @var_SQLStr = CONCAT(@var_SQLStr ,'FROM DemoTable');
SET @var_SQLStr = CONCAT(@var_SQLStr ,'WHERE DemoTableId IN (''',Replace(var_SelectedIds,',',''','''),'''); ');
-- SELECT @var_SQLStr;
PREPARE stmt FROM @var_SQLStr;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
我已经试过alread。
// This is throwing SQL Syntax ERROR.
SET @var_SQLStr = '';
SET @var_SQLStr = CONCAT(@var_SQLStr ,'Delete ');
SET @var_SQLStr = CONCAT(@var_SQLStr ,'FROM DemoTable');
SET @var_SQLStr = CONCAT(@var_SQLStr ,'WHERE DemoTableId IN (''',Replace(var_SelectedIds,',',''','''),'''); ');
SET @var_SQLStr = CONCAT(@var_SQLStr ,' SELECT ROWS_COUNT() INTO @var_AffectedRows; ');
-- SELECT @var_SQLStr;
PREPARE stmt FROM @var_SQLStr;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
文本必须代表一个单独的语句,而不是多个语句。
我也试过
START TRANSACTION;
-- Other statements here
SET @var_SQLStr = '';
SET @var_SQLStr = CONCAT(@var_SQLStr ,'Delete ');
SET @var_SQLStr = CONCAT(@var_SQLStr ,'FROM DemoTable');
SET @var_SQLStr = CONCAT(@var_SQLStr ,'WHERE DemoTableId IN (''',Replace(var_SelectedIds,',',''','''),'''); ');
-- SELECT @var_SQLStr;
PREPARE stmt FROM @var_SQLStr;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
SELECT ROW_COUNT() INTO @var_AffectedRows
COMMIT;
SELECT @var_AffectedRows AS NoOfRowsDeleted; // 0 output
我没能得到怎样可以行删除了。
非常感谢执行
SELECT ROW_COUNT()
:)它为我工作。 –