当前位置:  开发笔记 > 数据库 > 正文

你如何从数据库中查询1和0的字符数组?

如何解决《你如何从数据库中查询1和0的字符数组?》经验,为你挑选了1个好方法。

假设你有一长串的字符数为1或0,有点像bitvector,但在数据库列上.您如何查询知道设置/未设置的值?假设您需要知道char 500和char 1500是否为"true".



1> Tomalak..:
SELECT
  Id
FROM
  BitVectorTable
WHERE
  SUBSTRING(BitVector, 500, 1) = '1'
  AND SUBSTRING(BitVector, 1000, 1) = '1'

但是,没有索引可用于此类查询.当你有很多行时,这会很快变慢.

编辑:至少在SQL Server上,所有内置字符串函数都是确定性的.这意味着您可以根据整个组合值的SUBSTRING()结果调查计算列的可能性,并为每个组合生成一个索引.插入将更慢,表格大小将增加,但搜索将非常快.

SELECT
  Id
FROM
  BitVectorTable
WHERE
  BitVector_0500 = '1'
  AND BitVector_1000 = '1'

编辑#2:SQL Server的限制是:

每个普通表1,024列

每"宽"表有30.000列

推荐阅读
有风吹过best
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有