[英]MySQL Update Value from SubQuery
我正在使用MySQL并正在运行查询,我认为该查询应该有效,但显然我缺少了一些东西。
运行时0条记录被更新:
UPDATE `client`
SET StatementTermsID = (SELECT StatementTermsID FROM statementterms WHERE TermsDescription = 'NET 15')
WHERE `client`.StatementNote LIKE '%Net 15%';
如果我自己运行子查询,则会得到预期的记录ID。 如果我将子查询更改为静态值,则将更新2000条记录。 对我缺少的东西有任何想法吗?
这是另一种语法:
UPDATE `client` a,
(SELECT StatementTermsID FROM statementterms WHERE TermsDescription = 'NET 15') b
SET a.StatementTermsID = b.StatementTermsID
WHERE a.StatementNote LIKE '%Net 15%';
我认为您应该使用联接。 我可以看到我们不能使用StatementTermsID,因为那是您要更新的内容,因此可以肯定的是,它不会在前一个表中出现。 如果您有任何ID要加入,也要使用它。
UPDATE client
SET StatementTermsID =statementterms.StatementTermsID
FROM client
INNER JOIN statementterms
WHERE statementterms.TermsDescription = 'NET 15' AND
client.StatementNote LIKE '%Net 15%';
否则尝试这种语法
UPDATE client , statementterms
SET client.StatementTermsID = statementterms .StatementTermsID
WHERE statementterms.TermsDescription = 'NET 15' AND
client.StatementNote LIKE '%Net 15%';
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.