我有一個MySQL數據庫,其中有表myTable
和列id, NameID, InvoiceNo, BilleeNo, Date
。行數不斷變化(可能增加或減少)。在單個SQL中更新具有不同值的多行
mytable的:
id NameID InvoiceNo BilleeNo Date
1 N01 4566 02 01-MAR-2013
2 N01 unallocated 02 01-MAR-2013
3 N02 1233 02 01-MAR-2013
4 N02 1233 02 01-MAR-2013
5 N02 unallocated 02 01-MAR-2013
6 N02 1244 02 01-JUN-2013
我想用一個InvoiceNo
具有相同的NameID, BilleeNo
和Date
更新未分配InvoiceNo
。
更新的表是:
id NameID InvoiceNo BilleeNo Date
1 N01 4566 02 01-MAR-2013
2 N01 4566 02 01-MAR-2013
3 N02 1233 02 01-MAR-2013
4 N02 1233 02 01-MAR-2013
5 N02 1233 02 01-MAR-2013
6 N02 1244 02 01-JUN-2013
我嘗試此查詢:
UPDATE np as updated_np
SET invoice_no = old_np.invoice_no
FROM np as old_np
WHERE old_np.nameid = updated_np.nameid and
old_np.date = updated_np.date and
old_np.BILLEE_NO = updated_np.BILLEE_NO and
old_np.invoice_no != 'unallocated' and
updated_np.invoice_no='unallocated';
你能不能也請與我們分享你到目前爲止試圖解決這個問題? –
我嘗試這樣一個:UPDATE NP作爲updated_np SET invoice_no = old_np.invoice_no FROM NP作爲old_np WHERE old_np.nameid = updated_np.nameid和 old_np.date = updated_np.date和 old_np.BILLEE_NO = updated_np.BILLEE_NO和old_np .invoice_no!='未分配'和updated_np.invoice_no ='未分配'; – sjp