我尝试计算在DELETE
命令后删除的记录数:
SELECT COUNT(*) FROM BOXES
WHERE EXISTS (
DELETE FROM BOXES WHERE product='25043620' AND Order='0846'
)
我在删除附近遇到语法错误,但我无法弄清楚它是什么。
答案 0 :(得分:6)
经过一番挖掘,我发现......在
之后DELETE FROM BOXES WHERE product='25043620' AND Order='0846'
我要求数据库进行更改:
SELECT changes()
我知道删除了多少行。
答案 1 :(得分:1)
我认为你不能把计数和删除结合起来。单独做。
以下是示例: -
示例 - 使用SQL EXISTS子句
您还可以执行更复杂的删除。
您可能希望根据另一个表中的值删除一个表中的记录 表。由于您无法在SQL FROM子句中列出多个表 执行删除时,可以使用SQL EXISTS子句。
例如:
DELETE FROM suppliers WHERE EXISTS ( SELECT customers.customer_name FROM customers WHERE customers.customer_id = suppliers.supplier_id AND customers.customer_name = 'IBM' );
此SQL DELETE示例将删除供应商中的所有记录 table表中名称为customers表的记录 IBM,customer_id与supplier_id相同。
如果您想确定要删除的行数,可以 可以在执行之前运行以下SQL SELECT语句 删除。
SELECT COUNT(*) FROM suppliers WHERE EXISTS ( SELECT customers.customer_name FROM customers WHERE customers.customer_id = suppliers.supplier_id AND customers.customer_name = 'IBM' );
答案 2 :(得分:0)
您可以尝试将语句放入循环中,并将参数作为循环条件,然后让循环计数为您递增。
答案 3 :(得分:0)
对于那些来这里使用SQLServer的人-您将使用:
SET NOCOUNT OFF
DELETE FROM BOXES WHERE product='25043620' AND Order='0846'
SELECT @@ROWCOUNT
我不确定这是否可以在SqlLite中工作,如果有人可以确认:)