gpt4 book ai didi

sql - 选择受更新影响的行

转载 作者:可可西里 更新时间:2023-11-01 07:06:41 24 4
gpt4 key购买 nike

如果我有一个包含这些字段的表:

int:id_account
int:session
string:password

现在对于登录语句,我运行此 sql UPDATE 命令:

UPDATE tbl_name
SET session = session + 1
WHERE id_account = 17 AND password = 'apple'

然后我检查一行是否受到影响,如果确实有一行受到影响,我就知道密码是正确的。

接下来我要做的是检索此受影响行的所有信息,这样我就会得到其余字段的信息。
我可以使用一个简单的 SELECT 语句,但我确定我在这里遗漏了一些东西,大师们一定知道一种更简洁的方法,并且会告诉我 (:
此外,自从我编写的第一个登录 sql 语句以来,它一直困扰着我。

如果 UPDATE 确实更新了一行,是否有任何性能方面的方法将 SELECT 合并到 UPDATE 中?
还是我最好用两个语句让它变得简单?不需要原子性,所以我最好远离表锁,不是吗?

最佳答案

您应该对 SELECT 使用相同的 WHERE 语句。它将返回修改后的行,因为您的 UPDATE 没有更改用于查找的任何列:

UPDATE tbl_name
SET session = session + 1
WHERE id_account = 17 AND password = 'apple';

SELECT *
FROM tbl_name
WHERE id_account = 17 AND password = 'apple';

一个建议:永远不要将密码存储为纯文本!使用哈希函数,如下所示:

MD5('apple')

关于sql - 选择受更新影响的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4323480/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com