Heim  >  Fragen und Antworten  >  Hauptteil

MySQL-Abfrage: Wert um 1 reduzieren

Ich möchte den in einem Feld (Ganzzahl oder Dropdown) enthaltenen Wert um 1 verringern. Ich habe diese drei Abfragen ausprobiert und keine davon hat wie erwartet funktioniert:

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'

Ich habe hier und bei Google gesucht, aber alle Lösungen, die ich gefunden habe, waren ähnlich. Irgendeine Idee, warum das bei mir nicht funktioniert?

P粉217629009P粉217629009360 Tage vor642

Antworte allen(3)Ich werde antworten

  • 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'

    Antwort
    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'

    Antwort
    0
  • 大瓶可乐@php.cn

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

    方法事关重大实发工资***嘎洒***给

    Antwort
    0
  • StornierenAntwort