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