Speranza non ho intenzione offtopic sul mio primo post, ma mi piacerebbe espandere un po 'sul casting di integer a stringa come alcuni gli intervistati sembrano sbagliarsi.
Poiché l'espressione in questa query utilizza un operatore aritmetico (il simbolo più +), MySQL convertirà qualsiasi stringa nell'espressione in numeri.
Per dimostrare il seguente produrrà il risultato 6:
SELECT ' 05.05 '+'.95';
concatenazione di stringhe in MySQL richiede la funzione CONCAT() quindi non c'è ambiguità e MySQL converte le stringhe di galleggiante e li somma insieme.
Penso che il motivo per cui la query iniziale non funzionava molto probabilmente perché la variabile $ points non è stata effettivamente impostata sui punti correnti dell'utente. Era impostato a zero, o non era impostato: MySQL lancia una stringa vuota a zero. Per l'illustrazione, il seguente restituirà 0:
SELECT ABS('');
Come ho detto, spero che non sono troppo off-topic. Sono d'accordo che Daan e Tomas hanno le migliori soluzioni per questo particolare problema.
Ho avuto un un problema simile ha poi realizzato che il tipo predefinito del campo era "NULL", lo ha cambiato in 0 e tutto andava bene. – Azmeer