Requête Mysql : réduire la valeur de 1
P粉217629009
P粉217629009 2023-10-25 10:57:45
0
3
674

Je souhaite décrémenter la valeur contenue dans un champ (entier ou déroulant) de 1. J'ai essayé ces 3 requêtes et aucune n'a fonctionné comme prévu :

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'

J'ai cherché ici et sur Google mais toutes les solutions que j'ai trouvées étaient similaires. Une idée de pourquoi cela ne fonctionne pas de mon côté ?

P粉217629009
P粉217629009

répondre à tous(3)
P粉268654873

Essayez de supprimer les guillemets simples du nom de la colonne, sinon il sera traité comme une chaîne "my_field-1" ou utilisez des guillemets autour du nom de la colonne

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

ou

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

Vous n'avez besoin d'aucun devis.

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

Pour comprendre, c'est comme une émotion classique dans n'importe quelle langue : « Je veux my_field 等于 my_field(valeur actuelle) moins 1” >.
S'il est cité, cela signifie "Je veux que my_fieldmy_field soit égal à la chaîne :

  1. 'my_field-1''my_field-1' (pour votre première requête)
  2. 'my_field' - 1'my_field' - 1 (Cela n'a aucun sens, du moins pour moi : quel est le résultat de la soustraction d'un entier d'une chaîne ?)
  3. '-1''-1', si votre champ est de type symbolique INTEGER, la valeur sera convertie en -1.

Dans certains cas (si le nom de votre champ contient des espaces ou des caractères spéciaux), vous pouvez entourer le nom du champ de « backticks » :

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

La méthode est d'une grande importance et le salaire réel ***gasa*** est donné

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal