这是我的查询:
SELECT u.password, r.active
FROM users u
INNER JOIN resend_pass r
ON u.id = r.user_id
WHERE r.token = 'mytoken' AND r.active = 1
上面查询的结果是这样的:
+----------+--------+
| password | active |
+----------+--------+
| mypass | 1 |
+----------+--------+
注: token
列是唯一的,所以结果总是一个排(或零行)。
现在,我将该select
语句转换为如下update
语句:
UPDATE users u
INNER JOIN resend_pass r
ON u.id = r.user_id
SET u.password = 'mynewpass',
r.active = 0
WHERE r.token = 'mytoken' AND
r.active = 1
然后结果将是这样的:
+-----------+--------+
| password | active |
+-----------+--------+
| mynewpass | 0 |
+-----------+--------+
好吧,一切都很好。只是我不知道为什么受影响的行数是2
?如您所见,只有一行,而我已经更新了一行的两列,那么为什么受影响的行是2
?
echo $stm->rowCount(); // 2
不是1
吗?
SET u.password = 'mynewpass',
r.active = 0
多数民众赞成在2表中的每个表由u和r别名。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句