2015-12-29 81 views
0

我期待在一個表(requester.rqgroup)中將選定行中的列設置爲另一個表中選定列的值(groups.grpnum) ,一次更新一次。MySQL更新是將其他行中的選定列設置爲零

當我運行此查詢:

UPDATE請求者 SET rqgroup =(選擇組grpnum WHERE組名,如 '託管開放Sys系統工程') 並(在requesters.name LIKE'J.史密斯)

對於J. Smith爲名稱的行,rqgroup值設置正確,但所有其他行的rqgroup值設置爲零。

請提出建議? 新年快樂, Jonah Giacalone

回答

0

你不需要輸入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') 

它的速度更快。 (我認爲)

+0

工作。謝謝! – meejo57

+0

不要忘記選擇接受的答案:) – Phiter

相關問題