搜尋

首頁  >  問答  >  主體

Mysql查詢:將值減少1

我想將欄位(整數或下拉清單)中包含的值減 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粉217629009P粉217629009469 天前745

全部回覆(3)我來回復

  • P粉268654873

    P粉2686548732023-10-26 10:14:06

    嘗試從列名稱中刪除單引號,否則它將被視為字串「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'

    回覆
    0
  • P粉762730205

    P粉7627302052023-10-26 09:15:35

    您不需要任何引號。

    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'

    回覆
    0
  • 大瓶可乐@php.cn

    大瓶可乐@php.cn2023-10-26 17:27:08

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

    回覆
    0
  • 取消回覆