搜索

首页  >  问答  >  正文

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粉217629009400 天前679

全部回复(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
  • 取消回复