为了更清楚:
表格thetable (id int, username varchar(30), password varchar(30), last_successful_login timestamp, last_unsuccessful_login timestamp, another_variable varchar(30))
有以下一行:(1, "tgh", "pass", 0, 0, "another")
1) 错误的用户/通行证对,但有一行与用户名
我想用ANDselect id from thetable where username="tgh" and password="wrongpass" and another_variable="another";
更新last_unsuccessful_login
所有行的列(这是唯一的,不能有两行(“tgh”,“another”)对。但是可以有(“tgh”,“another2”)。 ) 到.username="tgh"
another_variable="another"
CURRENT_TIMESTAMP
因此,示例行将是(1, "tgh", "pass", 0, CURRENT_TIMESTAMP, "another")
,在不完全匹配的“选择”查询之后。
更清楚地说,我试图避免只在表上运行额外的更新username="tgh"
,another_variable="another"
即update thetable set last_unsuccessful_login=CURRENT_TIMESTAMP where username="tgh" and another_variable="another";
,根据选择的结果。
2) 正确的用户/通行证对
另外,如果所有三个username
andpassword
都another_variable
匹配,这次我想将 设置last_successful_login
为CURRENT_TIMESTAMP
。
这将使示例行 `(1, "tgh", "pass", CURRENT_TIMESTAMP, 0, "another")
最有效的方法是什么?