如题  数据是BLOB类型  怎么才能修改其中的某些值

解决方案 »

  1.   

    假设字段memo为blob类型,在该字段的值前面增加字符串'add--'
    则操作语句如下:update tb_blog set memo=concat('add---',cast(memo as char)) where id=1;
      

  2.   

        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的值?
      

  3.   

    怎样 转换成HEX值导出 然后进行数据中的某字符 然后再导入?
      

  4.   

     update table set data=hex(data) where  ?
      

  5.   

    select data into @str from table where id='user1';
    update table set data=@str where id='user2';
      

  6.   

        谢谢楼上的大大   编辑查询得到的BLOB值 可以通过什么方式修改? 
      16进制  还是直接修改?
      

  7.   

    使用mysql_real_query而不是mysql_query,并且二进制数据要做转义
    有两种方法:
    方法一
    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。
      

  8.   


     update table set data=unhex('A2FF436E') where  ?
      

  9.   

    方法一中mysql_real_query需要知道查询语句的长度,这个怎样得出来啊?