首先不是很明白你的需求,你的第一和第二个两个需求(从语句看)就不相同,所以我认为没有可比性
从语句上简单看第一个的方案要好于第二个不是很明白你的二个的需求,既然要查询=1000,为什么还要用like和<>?你已经知道具体的值了,为什么不用“=”?看你的语句,个人感觉,如果你只是简单是为了分一个类别,你可以再加一个字段,用来标记这一类产品的类别,这样也就不用like了。

解决方案 »

  1.   

    我的目的是:
    对数据建立父子关系
    比如:行政部(编号1000),研发部(编号2000),人事部(编号3000)
    而研发部下面又有研发一部(编号2100),研发二部(编号2200)等等,研发一部下面也可以有子部门
    那么我要查找研发部下的所有部门时:
    如果我把编码字段设置为int型
    select * from depart where code>=2000 and code <3000 可以得到结果
    而把编码设计为varchar型
    select * from depart where code like '2%' 可以得到结果这两种那个性能会好一些,假如有100000条纪录相差回有多大
      

  2.   

    看你的应用需要吧..用number类型起码比较会稍微快一点点, 可能对我们并没有什么意义..主要还是考虑应用的设计, 如果应用没有要求, 建议使用number类型..
      

  3.   

    我的理解:1.可以在code上建索引,但是用like的话就用不到索引了,所以建议用第一种
              2.数字关联比字符串关联速度快这只是我个人的理解,不知是否正确。