小弟是搞通信的,大学学的数据库课程都不记得老师是长什么模样了。超囧。
遇到一个SQLite数据库检索难题,超级简单的表结构,几千条数据,table就叫itemlist,每行六列的纯字符,物品,编号,说明,属性,作用,位置,责任人...这样就能找出一个含app的显示select * from itemlist where 物品 like '%app%';
有个这样的条件,看看能不能实现,
检索同时达到这样条件的:"物品"列,以ap开头的且以e结尾,
"编号"列,第3,4,5,6位字符为2013的
"说明"列,含有n字母的,
"属性"列,没有内容的
"解释"列,字符数量4位以上的
"位置"列,有多于4位字符的
"责任人"列,有内容的(非空的)
其实一下子不用找那么复杂的对象,我是实在没有办法,把可能遇到的情况全问了,很少搞这种东西,觉得很无助,唯有请教大家了,100分送上

解决方案 »

  1.   

    "物品"列,以ap开头的且以e结尾,
    substr(物品,1,2)='ap' and 
    substr(物品,length(物品),1)='e'
     "编号"列,第3,4,5,6位字符为2013的
    substr(编号,3,4)='2013'
     "说明"列,含有n字母的,like('%n%',说明)
     "属性"列,没有内容的
    属性 is null
     "解释"列,字符数量4位以上的
    length(解释)>4
     "位置"列,有多于4位字符的
    length(位置)>4
     "责任人"列,有内容的(非空的)
    责任人 is not null
      

  2.   

    select * from itemlist 
    where 物品 like 'ap%e'
    and 编号 like '__2013%'
    and 说明 like '%n%'
    and 属性 is null
    and length(解释) > 4
    and length(位置) > 4
    and 责任人 is not null
      

  3.   

    用你自己说的like就可以解决你的需要了···不要那么麻烦!
      

  4.   

    "物品"列,以ap开头的且以e结尾,  "物品"列 like 'ap%e'
    "编号"列,第3,4,5,6位字符为2013的  "编号"列 like '..2013%' 
    "说明"列,含有n字母的,      "说明"列 like '%n%'
    "属性"列,没有内容的         "属性"列 is null or "属性"列=''
    "解释"列,字符数量4位以上的  length("解释"列)>=4
    "位置"列,有多于4位字符的    length("位置"列)>=4
    "责任人"列,有内容的(非空的) length("责任人"列)>0