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é ?
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
ou
Vous n'avez besoin d'aucun devis.
Pour comprendre, c'est comme une émotion classique dans n'importe quelle langue : « Je veux
my_field
等于my_field
(valeur actuelle) moins1
” >.S'il est cité, cela signifie "Je veux que
my_field
my_field soit égal à la chaîne :'my_field-1'
'my_field-1' (pour votre première requête)'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 ?)'-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 » :
La méthode est d'une grande importance et le salaire réel ***gasa*** est donné