我刚刚意识到我一直在为表中的一列捕获错误的数据。我已经解决了这个问题,但是,到目前为止我捕获的数据仍然不正确。
让我们命名我的表TableIWantToCorrect
和TableWithIDs
在TableIWantToCorrect
,我有一个外键TableWithIDs
。这是不正确的。
我可以通过将 inTableIWantToCorrect
列的子字符串与TableWithIDs
.
所以目前,我有
表IWantToCorrect
Name ForeignKey
123-abc-123 15
456-def-456 15
789-ghi-789 15
带 ID 的表
CompareName id
abc 1
def 2
ghi 3
TableIWantToCorrect
因此,当名称中的子字符串等于比较名称中的子字符串时,我想更新以具有正确的 ForeignKey 值。子字符串的位置始终相同,因此我可以使用该Substring
方法。
我的尝试:
Update TableIWantToCorrect
SET ForeignKey =
(SELECT id
FROM TableWithIDs
WHERE UPPER(CompareName) = UPPER((SUBSTRING(TableIWantToCorrect.Name, 4, 3)))
结果 :
子查询返回超过 1 个值。当子查询跟随 =、!=、<、<=、>、>= 或子查询用作表达式时,这是不允许的。该语句已终止。
我知道我做了一些愚蠢的事情。我在这里做错了什么?