我想要更新一个列,其中包含2个mysql列之间的差异结果,并计算受影响的行数。在我的情况下,它只能是1.这是我正在使用的mysql查询,它根本不一致
$connection->query("UPDATE items SET Quantity_Available = Quantity - Quantity_Committed WHERE Item_ID = '$itemid'");
if($count=$connection->affected_rows!=1){echo $count;die('makassi');}
如果我用数值替换Quantity_Committed,我得到我想要的,即代码继续。但是,如果我保持原样,我会得到正确的$ count数字(1),但它也会因为回应makassi'而失败。不应该这样。
这是一种不正确的方法来减去2个mysql列,还是这个php mysqli api中的一个bug? 这对我来说真是莫名其妙!!请帮忙
答案 0 :(得分:1)
这是一个不好的做法,你正在尝试做什么。如果数据库中的列是从列中已有的另一列派生的。那么创建冗余就是数据库。应尽可能地对所有数据库进行标准化。请阅读有关数据规范化的here。
无论你想做什么,都可以以更好的方式实现。喜欢
过滤记录
SELECT * FROM items WHERE Quantity - Quantity_Column > 5
或者,检索可用数量。
SELECT (Quantify - Quantity_Column) as `Quality_Available` from items