MySQL中是否存在可能无法存储在字段中的非法字符?

时间:2012-01-26 23:48:59

标签: mysql hex ascii character

我正在寻找一种速记解决方案,将md5哈希存储在MySQL表中,作为字符串数据。我认为base256可以将字符串的长度减少一半,减少到16位数字符串而不是32位十六进制数字。所以我取十六进制并以编程方式将其分成两位数的块,然后将每组两位数转换为ASCII。例如:

4cf5f5941a02573dc007e60442f5358a

缩短为

Lõõ”W=ÀæBõ5Š

如果这些角色没有正确打印,那就没关系 - 我只需要存储它们。 MySQL会在没有抱怨的情况下将这种ASCII数据接受到文本字段吗?

1 个答案:

答案 0 :(得分:1)

MySQL会接受这些值,但在编写时必须非常小心 - 我强烈建议使用绑定参数。

您可能希望将[{1}}和COMPRESS()作为替代方案:

UNCOMPRESS()

INSERT INTO ... SET hashcode=COMPRESS('4cf5f5941a02573dc007e60442f5358a');

可能会让这个技巧更具可读性