Để chuyển tất cả giá trị của các cột chuỗi từ UPPERCASE sang lowercase, dùng UPDATE với hàm LOWER() cho từng cột.
Ví dụ minh họa
Tạo bảng và chèn dữ liệu UPPERCASE:
CREATE TABLE DemoTable (
Id VARCHAR(100),
StudentFirstName VARCHAR(20),
StudentLastName VARCHAR(20),
StudentCountryName VARCHAR(10)
);
INSERT INTO DemoTable VALUES
('STU-101', 'John', 'Smith', 'US'),
('STU-102', 'John', 'Doe', 'UK'),
('STU-103', 'David', 'Miller', 'AUS');
Dữ liệu gốc:
+---------+------------------+-----------------+--------------------+ | Id | StudentFirstName | StudentLastName | StudentCountryName | +---------+------------------+-----------------+--------------------+ | STU-101 | John | Smith | US | | STU-102 | John | Doe | UK | | STU-103 | David | Miller | AUS | +---------+------------------+-----------------+--------------------+
Cập nhật tất cả cột sang lowercase:
UPDATE DemoTable
SET Id = LOWER(Id),
StudentFirstName = LOWER(StudentFirstName),
StudentLastName = LOWER(StudentLastName),
StudentCountryName = LOWER(StudentCountryName);
Kết quả:
+---------+------------------+-----------------+--------------------+ | Id | StudentFirstName | StudentLastName | StudentCountryName | +---------+------------------+-----------------+--------------------+ | stu-101 | john | smith | us | | stu-102 | john | doe | uk | | stu-103 | david | miller | aus | +---------+------------------+-----------------+--------------------+
Lưu ý:
LOWER()chỉ ảnh hưởng đến chữ cái A-Z. Số, ký tự đặc biệt không đổi.- Cần liệt kê tất cả cột muốn chuyển. Không có cú pháp
UPDATE t SET * = LOWER(*). - Nếu bảng lớn, chạy trong transaction và có thể chia batch để tránh lock lâu.
- Để chỉ hiển thị lowercase khi SELECT (không sửa dữ liệu):
SELECT LOWER(Id), LOWER(StudentFirstName).... - Collation case-insensitive (mặc định
utf8mb4_general_ci) khiếnWHERE col = 'ABC'khớp 'abc'. DùngCOLLATE utf8mb4_binnếu cần phân biệt.