Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql SQL新手问题-尝试设置一个值,其中两列匹配,另一列具有另一个值_Mysql_Sql - Fatal编程技术网

Mysql SQL新手问题-尝试设置一个值,其中两列匹配,另一列具有另一个值

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

我试图设置列“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      | 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