mysql - 满足几个条件的sql设置变量

标签 mysql sql

我只是想知道如果 table1 和 table2 中的几个值相等,如何更新 table1 中的行。

例如,table1 有行:

id - password - attemp
user  secret       0
user2  pass        0

table2 有行”

id -  password
user   secret
user2   kek

将 table1 attemp 值(其中 table1 用户和密码相同且 table1 attemp = 0)更新为 table1 attemp = 1

我做了这样的事情(但它不起作用):

UPDATE a1
set a1.attemp = '1'
from table1 a1
JOIN table2 a2
on a1.user = a2.user AND a1.password = a2.password
WHERE 
a1.attemp != 1 

最佳答案

试试这个:

UPDATE table1 a1
INNER JOIN table2 a2 ON a1.id = a2.id AND a1.password = a2.password
SET a1.attemp = '1'
WHERE a1.attemp != '1'

这将导致:

ID  PASSWORD    ATTEMP
user    secret  1
user2   pass    0

sqlfiddle demo

关于mysql - 满足几个条件的sql设置变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19980788/

相关文章:

mysql - 在不同数据库的表之间传输行

mysql - 如果 1 列不在结果中,则追加到 MySQL 结果

mysql - 带有 where 子句的 SQL MIN 函数

mysql - 使用 RDBMS 数据库测试数据创建?

java - 在 SQLCipher 中设置密码

mysql - SQL 修剪通配符模式

Mysql查询,多个where条件,匹配哪个字段?

php - MAX( ) MYSQL 调用的问题

mysql - 如何根据单次更新查询的另一列中的值更新一列中的值?

java - 轻量级自制 Java MySQL 连接池 - 它可以工作吗?