MYSQL | ENCODE()输出blob而不是text

时间:2015-08-06 06:07:01

标签: mysql text encoding utf-8 blob

我试图用ENCODE()函数编码一个简单的字符串。使用字符串,它给我文本作为输出。但是使用一个字段它给了我BLOB。如何绕过BLOB并输出编码字段的文本?

以下是发生的事情:

SELECT ENCODE('myText,'myPw')
  - 输出:baddade4b04e // 目标=此+使用字段名

SELECT ENCODE(Field,'myPw') FROM myTable
  - 输出:[BLOB - 14B]

我尝试了什么:

SELECT CAST(ENCODE(Field,'myPw') AS CHAR(1000) CHARACTER SET utf8) FROM myTable
- 输出:空行!

SELECT CONVERT(ENCODE(Field,'myPw') USING utf8) FROM myTable
  - 输出:%(输出为1-2个字符,不能正确)

想象一下,我有一个专栏user。现在我希望“PaulPeter”编码相同,无论Im编码字符串“PaulPeter”还是字段user,其值为“PaulPeter”。

有人可以向我解释一下吗?非常感谢!

加密字符串:

Encrypted string

加密字段:

Encrypted field

MySQL-Client-Version:5.5.41
user text utf8_bin

修改

我根据解码得到了另一个问题:Click
能够编码之后,我在AES_Encryption中遇到了同样的问题。当我加密字符串时,我得到输出为字符串。当用字符串值加密字段时,我得到blob。 :(完全讨厌。

1 个答案:

答案 0 :(得分:0)

您的用户列的类型为TEXT。尝试将该列仅转换为CHAR:

SELECT AES_ENCRYPT(CAST(Field AS CHAR(1000)),'myPw') FROM myTable