Mysql SQL新手问题-尝试设置一个值,其中两列匹配,另一列具有另一个值
我试图设置列“value”的值,其中“ID”等于2,“USERID”与同一表中的另一行匹配,其中“ID”等于1,示例中的值是,比如说,“London” 因此: 变成Mysql SQL新手问题-尝试设置一个值,其中两列匹配,另一列具有另一个值,mysql,sql,Mysql,Sql,我试图设置列“value”的值,其中“ID”等于2,“USERID”与同一表中的另一行匹配,其中“ID”等于1,示例中的值是,比如说,“London” 因此: 变成 ID | USERID | VALUE 1 | 1 | London 1 | 2 | Madrid 1 | 3 | London 1 | 4 | Paris 2 | 1 | on 2 | 2 | null 2 | 3 | on 2 | 4
ID | USERID | VALUE
1 | 1 | London
1 | 2 | Madrid
1 | 3 | London
1 | 4 | Paris
2 | 1 | on
2 | 2 | null
2 | 3 | on
2 | 4 | null
这可能吗
如果有人能帮助我,我将不胜感激!谢谢。在MySQL中,您可以在
更新中使用加入:
update t join
t t2
on t2.userid = t.userid and t2.value = 'London'
set value = 'on'
where t.id = 1
将更新
查询与加入
一起使用。请参阅欢迎使用堆栈溢出!StackOverflow不是免费的编码服务。你应该会的。请更新您的问题,以显示您已在某个应用程序中尝试过的内容。欲了解更多信息,请参阅,并点击:)非常感谢@Barmar为犯新手错误道歉。我保证我已经试着找了一段时间了,但是我一直在努力寻找正确的起点——你的链接帮我找到了正确的方向,谢谢!顺便问一下,使用AS
声明别名是否会降低初学者的可读性以外的其他方面?@AndrewMorton。这不使用作为
。我用它来表示列别名——如果你用得好,它有一个小优势,因为它可以帮助你发现缺少的逗号。我不将它用于表别名,因为我发现它没有任何用处。但使用它并没有害处。
update t join
t t2
on t2.userid = t.userid and t2.value = 'London'
set value = 'on'
where t.id = 1