MYSQL | ENCODE() 输出 blob 而不是文本

MYSQL | ENCODE() outputs blob instead of text

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

情况如下:

SELECT ENCODE('myText,'myPw')
- Output: baddade4b04e // Goal = This + using fieldname

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" 被编码相同,无论我是编码字符串 "PaulPeter" 还是字段 user 其中值为 "PaulPeter".

有人能给我解释一下吗?非常感谢!

加密字符串:

加密字段:

MySQL-客户端版本:5.5.41
user: 文本 utf8_bin


编辑:

根据这里的解码我又遇到了一个问题:
在能够编码之后,我在 AES_Encryption 那里遇到了同样的问题。当我加密一个字符串时,我得到的输出是一个字符串。使用字符串值加密字段时,我得到了 blob。 :( 太烦人了。

您的用户栏是文本类型。尝试仅将该列转换为 CHAR:

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