0

我正在寻找在不同位置记录不同物品的库存。

理想情况下,我将仅引用项目 ID 和位置 ID 并在表格中指定数量。

样本数据

编号 | location_id | item_id | 数量
1 | 1 | 1 | 10
2 | 1 | 2 | 12
3 | 1 | 3 | 12
4 | 2 | 1 | 5
5 | 2 | 3 | 5
6 | 3 | 2 | 1

我正在寻找编写一个查询,该查询将根据位置和项目 ID 检查是否存在行,并根据需要更新或插入行。

我尝试了以下方法:

INSERT INTO `inventory` (`location_id`, `item_id`, `qty`)
VALUES('4', '300', '1')
ON DUPLICATE KEY UPDATE `qty` = `qty` + 1

但问题是它要求键值在每一列中都是主要的/唯一的。

关于我如何在一个声明中实现这一目标的任何想法?我需要使用 IF 吗?

4

1 回答 1

0

首先写查询检查你是否有那个条目

$sql = "select * from `inventory` where qty = '4'";
if($row = mysql_fetch_array($sql))
{
then query for update 
}
else
{
query for insert
}
于 2013-10-31T11:22:40.827 回答