查询仅更新一行而不是全部

时间:2018-08-17 16:30:44

标签: mysql

查询说明:有两个表,发票和临时表。我需要从临时表中提取邮政编码,然后根据发票号将其推送到发票表中。

查询:

UPDATE 
Invoice
SET 
Invoice.zip_code = (SELECT zip_code FROM temp WHERE Invoice.invoice_number = temp.invoice_number)
WHERE 
Invoice.invoice_date >= '2017-08-01';

我的临时表中有3张发票 enter image description here 运行查询后,仅更新发票693459 enter image description here

2 个答案:

答案 0 :(得分:0)

您的查询将无法执行-因为它没有解决所有记录,而是仅对第一条记录应用一次。

UPDATE Invoice SET zip_code=Temp.zipcode
FROM Invoice INNER JOIN Temp ON
Invoice.invoice_number=Temp.invoice_number
WHERE invoice_date>='2017-08-01'

答案 1 :(得分:0)

确保表格中的发票日期为datetime

WHERE DATE(Invoice.invoice_date) >= '2017-08-01';