mysql如何连接/追加二进制数据类型

时间:2011-03-16 12:39:27

标签: mysql append binary-data stored-functions

我正在尝试编写一个将返回BINARY(20)类型的存储函数。我想通过将string,itn,float值放入其中来格式化此返回值。但我无法弄清楚如何追加二进制数据。

CREATE FUNCTION `test`() RETURNS binary(20)
BEGIN
declare v binary(20);

set v:= CAST('test' as binary);
set v := v || cast(5 as binary); -- I would like to append 5 as binary but how?

return v;
END

第一行将测试写为二进制,在第二行我想将5作为二进制追加。我怎样才能做到这一点?谢谢大家..

2 个答案:

答案 0 :(得分:2)

|| in mysql is logical OR - 您想使用CONCAT

SET v := CONCAT(v, CAST(5 AS BINARY));

而不是CAST(5 AS BINARY),您可以使用简写BINARY 5

答案 1 :(得分:0)

要连续5而不是字符5,请使用char(5)而不是binary 5。 所以:

select concat("test", char(5))

返回5个字节的blob。您可以通过以下方式验证:

select length(concat("test", char(5))), hex(concat("test", char(5)));

将其填充为20字节数组:

select convert(concat("test", char(5)), binary(20));

在您的存储过程中,您只需要:

set v:= concat("test", char(5));