假设字段memo为blob类型,在该字段的值前面增加字符串'add--' 则操作语句如下:update tb_blog set memo=concat('add---',cast(memo as char)) where id=1;
BLOB数据是一些用户信息
另外还有1个问题: select data from table where id='XXX' DATA的值为BLOB类型 select hex(data) from table where id='user1' 得到user1的HEX DATA值 我想让id为user2的data值 等于 user1的DATA值 如何通过转换成HEX的方式来修改USER2的值?
怎样 转换成HEX值导出 然后进行数据中的某字符 然后再导入?
update table set data=hex(data) where ?
select data into @str from table where id='user1'; update table set data=@str where id='user2';
则操作语句如下:update tb_blog set memo=concat('add---',cast(memo as char)) where id=1;
另外还有1个问题:
select data from table where id='XXX'
DATA的值为BLOB类型
select hex(data) from table where id='user1' 得到user1的HEX DATA值
我想让id为user2的data值 等于 user1的DATA值
如何通过转换成HEX的方式来修改USER2的值?
update table set data=@str where id='user2';
16进制 还是直接修改?
有两种方法:
方法一
1、通过mysql_real_escape_string把二进制数据转义。
2、构造sql语句,把转义后的二进制数据当成字符串写入。
3、 mysql_real_query执行sql语句。方法二
用 mysql_stmt_send_long_data()来向blob字段写入2进制数据流。
注意点:需要注意的是bind结构的buffer_type字段,必须与要输入的数据类型相符,
如:只写入一个long 数据,则用MYSQL_TYPE_LONG,写入字符流,用MYSQL_TYPE_STRING,
写入2进制数据流,用MYSQL_TYPE_BLOB。
具体这个参数各字段的含义参见 mysql5.0手册。
该方法只适合mysql 5.0。
update table set data=unhex('A2FF436E') where ?