假设有这样一个表 test 
 字段     类型
  id       int
  test1    binary(10)我想写条查询,如字段test1等于什么,但是因为test1字段类型为二进制数据类型,请问怎么样在后台来写
我用的是.net  C# 请大侠门帮忙

解决方案 »

  1.   

    补充下,就是:select * from test where test1 = '这个值该怎么在代码里给啊'
      

  2.   

    where charindex('二进制串',字段)>0 
     
    where charindex('二进制串',cast(字段 as varchar))>0
      

  3.   

    再补充下:
     比如我在后台.cs代码里访问数据库,执行语句:
       select test1 from test where id = '1'   (假设能查到对应一条记录) 然后我用一个DataTable 保存上述语句查询到的结果
     
     接下来我想将上面查到的test1的值做为条件执行下面的SQL:
       select * from test where test1 = '第一条语句查到的值,这个值该怎么给'
     各位大侠,速度帮忙啊,问题解决后我追加分的,大伙给力啊!!! 
      

  4.   

    你查询一下(select * from test)不就知道格式了?select * from test where test1 = 0x2f34125e5000112233ff
      

  5.   

    字段类型是binary(10),表示该字段有10个字节大小
    二进制和16进制的对应关系是: 一位16进制位对应4位二进制位, 二进制位的一个字节对应两位16进制位
    那么binary(10)可以用20位的16进制数来表示
    表结构如果是这样:
    字段     类型
      id       int
      test1  binary(10)
    10进制插入法:
    insert into table(id,test1) values(1, 1),test1内容:0x00000000000000000001(19个0)
    再用16进制插入法:
    insert into table(id,test1) values(1,0x1),test1内容:0x01000000000000000000,后跟18个0
    了解了原理,最简单的比较法就是:
    1,10进制写法:
    select * from table where test1=1
    显示结果为0x00000000000000000001(19个0)
    2,16进制写法
    select * from table where test1=0x1;
    显示结果为:0x01000000000000000000(后跟18个0)//是插在高位的,如果要插在低位,前面要加0用10进制吧,方便人的理解和代码的编写
    要显示test1的值为555的Sql语句:
    select * from table where test1=555
    显示出来的结果是16进制表示的:
    0x0000000000000000022B
    上面二者16进制表示和10进制表示的值是相等的
      

  6.   

    select * from table where test1=1对应的16进制写法是:
    select * from table where test1=0x00000000000000000001
    前面要19个0,够麻烦的