files_imported
--------
ID (PK)
SPN
FILE_ID
LISTPRICE
ACTION
我需要搜索并更新TableA,并且SET ACTION ='A',其中具有给定SPN的行中PRICE的值不等于为其他FILE_ID和匹配的SPN找到的PRICE的值。
我可以通过将任务分解为较小的查询来使用PHP,但我希望使用MySQL提供一个干净的解决方案。
这是我走了多远:
UPDATE files_imported fi1
JOIN files_imported fi2
ON fi1.SPN = fi2.SPN
SET ACTION = 'M'
WHERE fi1.file_id = 980987987
AND fi1.listprice <> fi2.listprice
最佳答案
UPDATE files_imported fi1, files_imported fi2
SET f11.ACTION = 'M'
WHERE fi1.file_id = 980987987
AND fi1.SPN = fi2.SPN /* same SPN*/
AND fi1.listprice <> fi2.listprice /* different price */
AND fi1.file_id <> fi2.file_id /* different file */
关于mysql - 根据同一表中其他行的值更新行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18893882/