假设有这样一个表 test
字段 类型
id int
test1 binary(10)我想写条查询,如字段test1等于什么,但是因为test1字段类型为二进制数据类型,请问怎么样在后台来写
我用的是.net C# 请大侠门帮忙
字段 类型
id int
test1 binary(10)我想写条查询,如字段test1等于什么,但是因为test1字段类型为二进制数据类型,请问怎么样在后台来写
我用的是.net C# 请大侠门帮忙
where charindex('二进制串',cast(字段 as varchar))>0
比如我在后台.cs代码里访问数据库,执行语句:
select test1 from test where id = '1' (假设能查到对应一条记录) 然后我用一个DataTable 保存上述语句查询到的结果
接下来我想将上面查到的test1的值做为条件执行下面的SQL:
select * from test where test1 = '第一条语句查到的值,这个值该怎么给'
各位大侠,速度帮忙啊,问题解决后我追加分的,大伙给力啊!!!
二进制和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进制表示的值是相等的
select * from table where test1=0x00000000000000000001
前面要19个0,够麻烦的