在执行之前,我怎么知道有多少行会更新受影响的sql

时间:2013-07-15 01:53:38

标签: php mysql

可以看看在这个sql下面将使用explain解释多少条记录:

explain select * from products 

enter image description here 但是expain不适用于更新和删除命令 在php中,我想用sql更新一个表,我想检查天气这个sql只会更新行或多行,如果有很多行受到影响,这个sql不允许运行以防止表格误操作。
那么在执行之前我怎么知道这个更新sql会影响多少行呢?

update products set products_model = 'hello' where products_id = '1'

4 个答案:

答案 0 :(得分:1)

你可以事先做select

select count(*)
from products 
where products_id = '1'

答案 1 :(得分:1)

我认为您应该先执行SELECT COUNT(*) from products WHERE products_id = '1'并观看计数

如果是== 1则更新

答案 2 :(得分:1)

使用

运行查询
SELECT COUNT(id) AS will_affect_rows_count FROM products WHERE products_id = '1'

这将为您提供受UPDATE查询影响的行数。

我可能会问为什么你可以在这个表中有重复的products_id的产品?

答案 3 :(得分:1)

如果你有一个独特的行索引'id',你可以做

SELECT id FROM yourtable WHERE updateCondition;

然后使用

进行更新
UPDATE yourtable SET foo=bar WHERE updateCondition AND id in (<ids returned by first query here>);