Giới thiệu
Để chuẩn hóa chuỗi ký tự (ví dụ: tên riêng) thành dạng "Viết hoa chữ cái đầu, các ký tự còn lại viết thường", MySQL không có hàm built-in đơn giản như PROPER() (Excel) hay InitCap() (Oracle). Ta cần kết hợp các hàm chuỗi: UPPER, LOWER, LEFT, SUBSTRING, và REPLACE.
Ví dụ minh họa
Bước 1: Tạo bảng và chèn dữ liệu (toàn bộ chữ hoa)
CREATE TABLE DemoTable2017 (Name TEXT);
INSERT INTO DemoTable2017 VALUES ('JOHN SMITH,MYSQL');
INSERT INTO DemoTable2017 VALUES ('DAVID MILLER,MONGODB');
INSERT INTO DemoTable2017 VALUES ('CHRIS BROWN,JAVA');
Bước 2: Cập nhật để chuẩn hóa chuỗi
UPDATE DemoTable2017
SET Name = REPLACE(
CONCAT(UPPER(LEFT(Name, 1)), LOWER(SUBSTRING(Name, 2))),
', ', ','
);
Giải thích:
LEFT(Name, 1): Lấy ký tự đầu tiên.UPPER(...): Viết hoa ký tự đầu.SUBSTRING(Name, 2): Lấy phần còn lại từ ký tự thứ 2.LOWER(...): Chuyển phần còn lại thành chữ thường.CONCAT(...): Ghép lại.REPLACE(..., ', ', ','): Loại bỏ khoảng trắng sau dấu phẩy (nếu có).
Bước 3: Kiểm tra kết quả
SELECT * FROM DemoTable2017;
+----------------------+
| Name |
+----------------------+
| John smith,mysql |
| David miller,mongodb |
| Chris brown,java |
+----------------------+
Lưu ý: Cách này chỉ viết hoa chữ cái đầu tiên của cả chuỗi. Nếu cần viết hoa từng từ (title case), logic sẽ phức tạp hơn, thường xử lý ở tầng ứng dụng hoặc dùng stored function.