Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Khi tôi thêm xx vào cột float mysql, kết quả là sai, Có phải lỗi không?

Vấn đề của bạn có liên quan đến giá trị dấu phẩy động của bạn lớn như thế nào nhưng tôi không chắc 100% lý do tại sao. Tôi đã thử nghiệm cập nhật một hàng tương tự với số lượng nhỏ hơn và nó hoạt động tốt. Bạn cũng nên hạn chế sử dụng dấu ngoặc kép bất cứ khi nào có thể vì nó đòi hỏi phải xử lý thêm. Xem câu hỏi SO này: cập nhật cột bằng cách trừ đi một giá trị

Đây là công việc dễ dàng của tôi giống như Tim Biegeleisen đã đề xuất:

CREATE TABLE `xxx` (
  `uid` int(11) NOT NULL,
  `money` decimal(10,2) NOT NULL DEFAULT '0.00' ,
  `real_money` float(10,2) NOT NULL ,
  `available_invoice` float(10,2) DEFAULT NULL,
  PRIMARY KEY (`uid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;

Chèn:

USE dbname;
insert into xxx Values(1234, 99959040.00, 0.00, 99999.00);

Cập nhật không có chuỗi:

update xxx set money = money - 20 where uid = 1234;

Có một số điều kỳ quặc khi tính toán với các giá trị dấu phẩy động lớn. Một số vấn đề này phụ thuộc vào máy và liên quan đến loại bộ xử lý bạn có. Đọc thêm tại đây: http://dev.mysql .com / doc / refman / 5.7 / en / problem-with-float.html

Ngoài ra, theo một câu hỏi SO khác, giá trị dấu chấm động KHÔNG phải là cách tốt để lưu trữ giá trị tiền. Sự khác biệt giữa kiểu dữ liệu float và decimal (xem câu trả lời thứ hai).

Có vẻ như đang sử dụng decimalnumeric kiểu dữ liệu tốt nhất cho cột tiền trong mysql.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nhận các đốm màu từ cơ sở dữ liệu mysql đúng cách với trình kết nối mysql trong python

  2. Tìm nạp các hàng trong bảng cơ sở dữ liệu MySQL bằng MySQL C API và C ++

  3. MySQL Tree được sắp xếp theo thứ tự của cha mẹ và con

  4. Giỏ hàng Zen:Tôi muốn truy vấn từ một danh mục cụ thể tên sản phẩm, giá cả, hình ảnh, mô tả và thuộc tính của nó

  5. MySQL đếm tất cả các con bất kể có bao nhiêu con