我知道有一種方法可以做到這一點。基本上我有變量$amount
,並希望從表股票的列數量。PHP MySQL更新減號變量沒有單獨的SELECT查詢
問題是我通常運行一個select查詢找出值然後扣除變量並運行另一個更新查詢。
運行單個更新的語法將會減去該值。
所有幫助表示讚賞。
我知道有一種方法可以做到這一點。基本上我有變量$amount
,並希望從表股票的列數量。PHP MySQL更新減號變量沒有單獨的SELECT查詢
問題是我通常運行一個select查詢找出值然後扣除變量並運行另一個更新查詢。
運行單個更新的語法將會減去該值。
所有幫助表示讚賞。
它看起來很簡單。在這個例子中括號是可選的。請務必在您的WHERE
條款中使用適當的條件!
$qry = "UPDATE table SET column = (column - $amount) WHERE somecondition;";
變量$amount
被認爲是正確轉義已,根據您所使用,或更好,但MySQL的API,參數,以事先準備好的例子,如PDO:
$qry = "UPDATE table SET column = (column - :amount) WHERE somecondition;";
$stmt = $db->prepare($qry);
$stmt->execute(array(':amount' => $amount));
嘗試是這樣的:
UPDATE table_name SET amount = amount - $amount WHERE primary_key = value LIMIT 1
如果你想確保amount
不低於零:
UPDATE table_name SET amount = amount - $amount WHERE primary_key = value AND amount >= $amount LIMIT 1
要在下面嗎?
UPDATE table_name
SET amount = amount -$amount
WHERE primary = id
出於好奇你是從一些其他的SQL選擇獲取$變量?像也許是一個零件清單或什麼?在存儲過程或化合物選擇中運行整個事件可能會快得多。
如果該變量是靜態的或本地生成的忽略。
靜態,但感謝您的建議 – Somk
啊,在那導致+1邁克爾 – meteorainer