Espoir Je ne vais pas offtopic sur mon premier post, mais je voudrais développer un peu sur la coulée de nombre entier à chaîne comme certains les répondants semblent avoir tort. Étant donné que l'expression de cette requête utilise un opérateur arithmétique (le symbole plus +), MySQL convertira toutes les chaînes de l'expression en nombres.
Pour démontrer, ce qui suit produira le résultat 6:
SELECT ' 05.05 '+'.95';
concaténation de chaîne dans MySQL nécessite la CONCAT() fonction donc il n'y a pas d'ambiguïté ici et MySQL convertit les chaînes de flotteurs et les additionne.
Je pense en fait que la raison pour laquelle la requête initiale ne fonctionnait pas est probablement due au fait que la variable $ points n'était pas définie sur les points actuels de l'utilisateur. Il était soit mis à zéro, soit était non défini: MySQL va lancer une chaîne vide à zéro. À titre d'illustration, ce qui suit retourne 0:
SELECT ABS('');
Comme je l'ai dit, je l'espère, je ne suis pas hors-sujet. Je suis d'accord que Daan et Tomas ont les meilleures solutions pour ce problème particulier.
J'ai eu un Le problème similaire s'est alors rendu compte que le type par défaut du champ était 'NULL', l'a changé à 0 et tout allait bien. – Azmeer