sql >> Database >  >> RDS >> Mysql

Mysql-query:waarde verlagen met 1

U heeft geen offertes nodig.

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

Om te begrijpen, het is als een klassieke aanstellerij in alle talen:"Ik wil my_field gelijk zijn aan my_field (de huidige waarde) min 1 .
Als je aanhalingstekens plaatst, betekent dit "Ik wil my_field gelijk zijn aan de string:

  1. 'my_field-1' (voor je eerste vraag)
  2. 'my_field' - 1 (wat niets betekent, althans voor mij:wat is het resultaat van een string minus een geheel getal?)
  3. '-1' , die wordt geconverteerd naar -1 als uw veld het ondertekende INTEGER-type heeft.

In sommige gevallen (als u spaties of speciale tekens heeft als uw veldnaam), kunt u de veldnaam omgeven met `backticks`:

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


  1. Zelfde login op 2 websites

  2. De naam van een kolom in SQL Server wijzigen (T-SQL)

  3. MYSQL-installatie met een .NET winforms-app

  4. Hoe verander ik het eigendom van alle objecten in een bepaald schema in PostgreSQL?