Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Chỉ cập nhật phần số nguyên trong trường MySQL

Tạo bảng demo

mysql> create table DemoTable702 (
    StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    StudentName varchar(100),
    StudentScore int
);
Query OK, 0 rows affected (0.56 sec)

Chèn dữ liệu

mysql> insert into DemoTable702(StudentName, StudentScore) values('Chris', 56);
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable702(StudentName, StudentScore) values('Robert', 21);
Query OK, 1 row affected (0.21 sec)
mysql> insert into DemoTable702(StudentName, StudentScore) values('Mike', 89);
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable702(StudentName, StudentScore) values('David', 99);
Query OK, 1 row affected (0.20 sec)

Hiển thị dữ liệu gốc

mysql> select * from DemoTable702;

Kết quả

+-----------+-------------+--------------+
| StudentId | StudentName | StudentScore |
+-----------+-------------+--------------+
| 1         | Chris       | 56           |
| 2         | Robert      | 21           |
| 3         | Mike        | 89           |
| 4         | David       | 99           |
+-----------+-------------+--------------+
4 rows in set (0.00 sec)

Cập nhật: Cộng 9 vào StudentScore cho StudentId = 2

mysql> update DemoTable702 set StudentScore = StudentScore + 9 where StudentId = 2;
Query OK, 1 row affected (0.09 sec)
Rows matched: 1 Changed: 1 Warnings: 0

Kiểm tra kết quả - Robert từ 21 thành 30

mysql> select * from DemoTable702;

Kết quả

+-----------+-------------+--------------+
| StudentId | StudentName | StudentScore |
+-----------+-------------+--------------+
| 1         | Chris       | 56           |
| 2         | Robert      | 30           |
| 3         | Mike        | 89           |
| 4         | David       | 99           |
+-----------+-------------+--------------+
4 rows in set (0.00 sec)

Giải thích: Cột StudentScore kiểu INT, phép toán + 9 trực tiếp cập nhật giá trị số nguyên. MySQL không có khái niệm "chỉ cập nhật phần nguyên" tách biệt vì INT chỉ lưu số nguyên.

Nếu cột là DECIMAL/FLOAT (có phần thập phân):

  • Làm tròn: ROUND(cot, 0)
  • Làm tròn xuống: FLOOR(cot)
  • Làm tròn lên: CEILING(cot)
  • Cắt bỏ phần thập phân: TRUNCATE(cot, 0) hoặc CAST(cot AS UNSIGNED)

Ví dụ: UPDATE bang SET cot = FLOOR(cot + 9.5) WHERE ...