Giới thiệu
Dùng REPLACE(col, '%', '') trong UPDATE để loại bỏ ký tự '%' khỏi chuỗi lưu lãi suất, chuyển về dạng số thuần để tính toán.
Ví dụ thực hành
1. Tạo bảng DemoTable828
mysql> CREATE TABLE DemoTable828 (
CustomerName VARCHAR(100),
InterestRate VARCHAR(100)
);
2. Chèn dữ liệu có '%'
mysql> INSERT INTO DemoTable828 VALUES
('Chris','10%'),('Robert','11.5%'),('David','15.90%'),('Bob','20%');
3. Xóa dấu %
mysql> UPDATE DemoTable828 SET InterestRate = REPLACE(InterestRate, '%', '');
4. Kết quả
+--------------+--------------+
| CustomerName | InterestRate |
+--------------+--------------+
| Chris | 10 |
| Robert | 11.5 |
| David | 15.90 |
| Bob | 20 |
+--------------+--------------+
Tiếp theo: Chuyển sang kiểu số để tính toán
-- Thêm cột số
ALTER TABLE DemoTable828 ADD COLUMN Rate DECIMAL(5,2);
-- Cập nhật từ chuỗi đã làm sạch
UPDATE DemoTable828 SET Rate = CAST(InterestRate AS DECIMAL(5,2));
-- Hoặc một lần: UPDATE ... SET Rate = CAST(REPLACE(InterestRate,'%','') AS DECIMAL(5,2));
Lưu ý
REPLACEthay thế tất cả lần xuất hiện. Nếu chuỗi có nhiều '%' (ví dụ '10%%') → tất cả bị xóa.- Nên lưu lãi suất als kiểu
DECIMAL(5,2)(0.00 - 999.99) thay vì VARCHAR. - Khi SELECT hiển thị:
CONCAT(Rate, '%')hoặcCONCAT(InterestRate, '%'). - Backup trước khi UPDATE hàng loạt.