Có thể lưu mã màu CSS hex (ví dụ: FF0000 = đỏ) trong MySQL bằng kiểu CHAR(6) (không dấu #).
Cú pháp
CREATE TABLE tên_bảng (
color_code CHAR(6) -- 6 ký tự hex: RRGGBB
);
Ví dụ minh họa
Tạo bảng:
mysql> CREATE TABLE storeCSSColorDemo (CSSValue CHAR(6));
Chèn 3 màu cơ bản (RGB):
mysql> INSERT INTO storeCSSColorDemo VALUES ('FF0000'), ('FFA500'), ('FFFF00');
Xem dữ liệu:
mysql> SELECT * FROM storeCSSColorDemo;
+----------+ | CSSValue | +----------+ | FF0000 | -- Đỏ (Red) | FFA500 | -- Cam (Orange) | FFFF00 | -- Vàng (Yellow) +----------+
Bảng tra màu hex phổ biến
| Màu | Hex | RGB |
|---|---|---|
| Đỏ | FF0000 | 255,0,0 |
| Xanh lá | 00FF00 | 0,255,0 |
| Xanh dương | 0000FF | 0,0,255 |
| Trắng | FFFFFF | 255,255,255 |
| Đen | 000000 | 0,0,0 |
| Vàng | FFFF00 | 255,255,0 |
| Cam | FFA500 | 255,165,0 |
| Tím | 800080 | 128,0,128 |
Các biến thể lưu trữ
| Kiểu | Độ dài | Hỗ trợ | Ghi chú |
|---|---|---|---|
| CHAR(6) | 6 | #RRGGBB | Cố định, nhanh, không NULL |
| CHAR(7) | 7 | #RRGGBB | Có dấu # |
| VARCHAR(7) | 7 | #RRGGBB | Cho phép NULL, linh hoạt |
| CHAR(8) | 8 | #RRGGBBAA | Có alpha (trong suốt) |
| INT UNSIGNED | 4 byte | 0xRRGGBB | Tối ưu lưu trữ, tính toán nhanh |
Sử dụng trong ứng dụng
-- PHP: Lấy từ DB, thêm # khi hiển thị
$color = '#' . $row['CSSValue']; // '#FF0000'
-- MySQL: Tìm màu gần nhất (đơn giản)
SELECT * FROM colors ORDER BY ABS(CONV(CSSValue, 16, 10) - CONV('FF5500', 16, 10)) LIMIT 5;
Lưu ý: Nên validate đầu vào (chỉ 0-9, A-F) trước khi INSERT.