MySQL 更新正在将其他行中的选定列设置为零

MySQL Update is Setting the Selected Column in other Rows to Zero

我希望将一个 table (requester.rqgroup) 中选定行中的列设置为另一个 table (groups.grpnum), 一次更新一个。

当我运行这个查询时:

更新请求者 SET rqgroup = (SELECT grpnum from groups WHERE groupname like 'Hosting Open Sys Engineering') 和(其中 requesters.name 喜欢 'J. Smith')

名称为 J. Smith 的行的 rqgroup 值设置正确,但所有其他行的 rqgroup 值设置为零。

有什么建议吗? 新年快乐, 乔纳贾卡隆

您不需要输入 where 两次,这就是让这件奇怪的事情发生的原因。

运行 改为:

UPDATE requesters SET rqgroup = (SELECT grpnum from groups WHERE groupname like 'Hosting Open Sys Engineering') WHERE  requesters.name LIKE 'J. Smith')

此外,由于您的 like 语句用于查找具有准确输入的结果,而不是 like,只需使用 =

UPDATE requesters SET rqgroup = (SELECT grpnum from groups WHERE groupname = 'Hosting Open Sys Engineering') WHERE  requesters.name = 'J. Smith')

速度更快。 (我认为)