我想在表中插入一个值。但是,该值也来自该表。我想检查该表上是否有重复的密钥。由于此值也来自该表,因此查询表明列名称不明确。
$result2 = "INSERT INTO estock_saldo
(items, customer_id, quantity , reference_no, size)
SELECT
items, '".$member_id."', '".$quantity[$i]."', reference_no, size
FROM
estock_saldo
WHERE id in ({$order_id[$i]})
ON DUPLICATE KEY
UPDATE estock_saldo.quantity = estock_saldo.quantity - '".$quantity[$i]."'";
$res2 = $mysqli->query($result2);
if(!$res2){ printf("Errormessage 2: %s\n", $mysqli->error); die(); }
含糊不清来自estock_saldo.quantity
。我试图别名列名称。但是,您无法在插入表中执行此操作。
答案 0 :(得分:1)
问题仍然存在于下面显示的代码段中。您不能在INSERT
语句中使用列别名。
INSERT INTO estock_saldo
(items, customer_id, quantity AS asquan
<-- HERE
您尝试的内容将始终具有重复条目,因为您再次插入相同的记录。而不是INSERT
语句,你实际上意味着要做UPDATE
之类的
UPDATE estock_saldo SET
quantity = quantity - '".$quantity[$i]."'"
WHERE id in ({$order_id[$i]});