Hy vọng tôi sẽ không phản đối bài viết đầu tiên của mình, nhưng tôi muốn mở rộng một chút về việc truyền số nguyên thành chuỗi vì một số người trả lời có vẻ đã sai.
Vì biểu thức trong truy vấn này sử dụng toán tử số học (ký hiệu cộng +), MySQL sẽ chuyển đổi bất kỳ chuỗi nào trong biểu thức thành số.
Để chứng minh, sau đây sẽ tạo ra kết quả 6:
SELECT ' 05.05 '+'.95';
Nối chuỗi trong MySQL yêu cầu hàm CONCAT () vì vậy không có sự mơ hồ ở đây và MySQL chuyển đổi các chuỗi thành float và thêm chúng lại với nhau.
Tôi thực sự nghĩ rằng lý do truy vấn ban đầu không hoạt động rất có thể là do biến $ points thực tế không được đặt thành các điểm hiện tại của người dùng. Nó được đặt thành 0 hoặc không được đặt: MySQL sẽ chuyển một chuỗi rỗng thành 0. Để minh họa, sau đây sẽ trả về 0:
SELECT ABS('');
Như tôi đã nói, tôi hy vọng tôi không quá lạc đề. Tôi đồng ý rằng Daan và Tomas có giải pháp tốt nhất cho vấn đề đặc biệt này.