1

谁可以使用解释查看在下面的 sql 中将选择多少条记录:

explain select * from products 

在此处输入图像描述 但 expain 不适用于更新和删除命令。
在 php 中,我想使用 sql 更新表,我想检查天气这个 sql 将只更新行或多行,如果有很多行受到影响,则不允许运行该 sql 以防止表误操作。
那么在执行之前我怎么知道这个更新sql会影响多少行呢?

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

4 回答 4

2

运行查询

SELECT COUNT(id) AS will_affect_rows_count FROM products WHERE products_id = '1'

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

我可能会问为什么您可以在此表中使用重复的 products_id 的产品?

于 2013-07-15T01:56:52.417 回答
2

如果你有一个唯一的行索引“id”,你可以这样做

SELECT id FROM yourtable WHERE updateCondition;

然后做你的更新

UPDATE yourtable SET foo=bar WHERE updateCondition AND id in (<ids returned by first query here>);
于 2013-07-15T02:22:20.947 回答
1

你可以先做一个select

select count(*)
from products 
where products_id = '1'
于 2013-07-15T01:55:47.960 回答
1

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

如果是 == 1 则更新

于 2013-07-15T01:56:13.643 回答