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
我正在尝试通过 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