Php 按id更新,返回id';那是don';不存在

Php 按id更新,返回id';那是don';不存在,php,mysql,sql,sql-update,Php,Mysql,Sql,Sql Update,我有一个产品表,它们都有一个唯一的ID ID | PRODUCT | PRICE | SKU 1 | Apple | 10 | 1 2 | Banana | 15 | 2 我想根据id运行价格更新,但更新列表可能包含数据库中尚未包含的产品。因此,它需要返回无法更新或未更新的内容 更新列表: ID | PRODUCT | PRICE | SKU 1 | Apple | 15 | 1 3 | pineapple | 25 | 3 现在我需要它来更

我有一个产品表,它们都有一个唯一的ID

ID | PRODUCT | PRICE | SKU
1  | Apple   | 10    | 1
2  | Banana  | 15    | 2
我想根据id运行价格更新,但更新列表可能包含数据库中尚未包含的产品。因此,它需要返回无法更新或未更新的内容

更新列表:

ID | PRODUCT   | PRICE | SKU
1  | Apple     | 15    | 1
3  | pineapple | 25    | 3
现在我需要它来更新ID1,price=15,并返回ID2还没有更新,ID3也不存在

这是由于以下原因,该网站销售轮胎,每年都有一个更新的定价列表,这是基于产品sku(不是产品id),但无论哪种方式都是独特的。我需要更新新列表中所有产品的价格,并有一个返回的列表,其中ID在新列表中,但不是旧列表,因此我们可以稍后添加这些产品,并且在数据库中有一个ID列表,但不是新列表,以便我们可以稍后删除它们(基于当前库存水平)

如果分为多个步骤,我会这样想:

$updated_skus = array();
foreach ($update_products as $product) {
  UPDATE 'tyres' SET 'price' = '$product['price']' WHERE 'sku' = '$product['sku']';
  $updated_skus[] = $product['sku'];
}
$current_skus = SELECT 'sku' FROM 'tyres';

好的,现在这部分代码中没有,但想法是这样的,任何不在当前和更新的sku中的sku都是新的可能产品,反之亦然,都是旧产品。因此,我需要返回两个列表,新产品和旧产品。

要获取未更新的ID:

SELECT p.id
FROM products p
LEFT JOIN updates u ON p.id = u.id
WHERE u.id IS NULL
要获取不存在的产品,请反转联接:

SELECT u.id
FROM updates u
LEFT JOIN products p ON u.id = p.id
WHERE p.id IS NULL

你的问题是什么?请在问题中发布,你已经有了什么代码我想知道如何做到这一点。我猜你想返回所有不在最小值和最大值之间的ID?你为什么要那样?没有任何意义:Pno那很容易。这是由于以下原因,该网站销售轮胎,每年都有一个更新的定价列表,这是基于产品sku(不是产品id),但无论哪种方式都是独特的。我需要更新新列表中所有产品的价格,并有一个返回的列表,其中ID在新列表中,但不是旧列表,因此我们可以稍后添加这些产品,并且在数据库中有一个ID列表,但不是新列表,以便我们可以稍后删除它们(基于当前库存水平)我猜@Burrito想要更新数据库中已经存在ID的某个产品,并返回一个success promt,如果该ID不存在,那么系统应该提示ID不存在。更新列表不是一个表,而是一个数据数组。只有原始产品列表是表将其加载到表中。MySQL无法对数据数组执行任何操作。或者,包含最后修改的列。