Mysql查詢:將值減少1
P粉217629009
P粉217629009 2023-10-25 10:57:45
0
3
670

我想將欄位(整數或下拉清單)中包含的值減 1。我嘗試了這 3 個查詢,但沒有一個可以按預期工作:

UPDATE `my_table` SET `my_field` = 'my_field-1' WHERE `other` = '123'

UPDATE `my_table` SET `my_field` = 'my_field' -1 WHERE `other` = '123'

UPDATE `my_table` SET `my_field` = '-1' WHERE `other` = '123'

我在此處和 Google 上進行了搜索,但找到的所有解決方案都是相似的。知道為什麼這在我這邊不起作用嗎?

P粉217629009
P粉217629009

全部回覆(3)
P粉268654873

嘗試從列名稱中刪除單引號,否則它將被視為字串「my_field-1」或在列名稱周圍使用反引號

UPDATE my_table SET my_field = my_field - 1 WHERE `other` = '123'

UPDATE my_table SET `my_field` = `my_field` - 1 WHERE  `other` = '123'
P粉762730205

您不需要任何引號。

UPDATE my_table SET my_field = my_field - 1 WHERE `other` = '123'

要理解,這就像任何語言中的經典情緒:「我希望my_field 等於my_field(當前值)減去1” >.
如果加引號,則表示「我希望 my_field 等於字串:

  1. 'my_field-1'(用於您的第一個查詢)
  2. 'my_field' - 1(這沒有任何意義,至少對我來說:字串減去整數的結果是多少?)
  3. '-1',如果您的欄位具有 INTEGER 符號類型,則該值將轉換為 -1。

在某些情況下(如果您的欄位名稱中有空格或特殊字元),您可以用「反引號」包圍欄位名稱:

UPDATE my_table SET `my_field` = `my_field` - 1 WHERE  other = '123'
大瓶可乐@php.cn

方法事關重大實發工資***嘎灑***給

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板