但是,如果您愿意在输入时打包数据并在输出时解包,则每个字符可以使用半个字节。对于 HTML 颜色代码,使用 3 字节的列BINARY (3)。
INSERT INTO html (color) VALUES (UNHEX('f2a709'));
SELECT HEX(color) AS color FROM html;
# would return 'F2A709'
# use LOWER() around HEX () if you want the lowercase equivalent returned.
将文字值存储在
BINARY
列中是一种有效的选择,但只有您希望比较区分大小写,以便 'a' != 'A'。给定相同的数据(基本上只有十六进制数字),如果你想要不区分大小写,那么你会想要使用
latin1
where 'a' = 'A'。这两个都将每个字符使用 1 个字节。
但是,如果您愿意在输入时打包数据并在输出时解包,则每个字符可以使用半个字节。对于 HTML 颜色代码,使用 3 字节的列
BINARY (3)
。http://dev.mysql.com/doc/refman/5.5/en/string-functions.html