0
从另一个表中的值与我想根据表2更新ClaimNos
几declarationNos
table1中。更新一个表使用select语句
UPDATE sg_report
SET ClaimNo = (
SELECT MAX(dummy.ClaimNo) as ClaimNo
FROM dummy
WHERE ClaimNo REGEXP '^[0-9]+$' and sg_report.DeclarationNo = dummy.DeclarationNo
)
WHERE dummy.DeclarationNo = (
SELECT DISTINCT dummy.DeclarationNo
FROM dummy
WHERE dummy.DeclarationNo LIKE '30%'
)
此查询不提供任何错误,但它也不工作。怎么了 ?
什么是正则表达式和它的目的是什么? – 2014-11-09 06:35:05
明杆的有claimNo一些垃圾文本值,因此正则表达式的所有如果你想要求的最大无这是claimNo – Mk5352 2014-11-09 06:42:20
的垃圾文字去抓取一个数字。然后将查询应该是这样的:SELECT MAX(dummy.ClaimNo REGEXP '^ [0-9] + $')作为ClaimNo从虚拟WHERE sg_report.DeclarationNo = dummy.DeclarationNo。此外,请确保您的第二个内部查询不应该返回多个值,因为您使用了LIKE '30%',这可能导致超过1个值。如果该情况使用IN运算符而不是=运算符,请检查以下行:dummy.DeclarationNo In而不是dummy.DeclarationNo = – 2014-11-09 06:57:02