我希望记录不同位置的不同商品的库存。
理想情况下,我只会引用商品ID和位置ID,并在表格中指定数量。
id | location_id | item_id | qty 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吗?
答案 0 :(得分:0)
首先写入查询检查您是否有该条目
$sql = "select * from `inventory` where qty = '4'";
if($row = mysql_fetch_array($sql))
{
then query for update
}
else
{
query for insert
}