表结构:id(自增列),city,vnews,dTime 表数据:1           wf  ,求到北京方向的货,2010-12-10
 
         2           wf  ,求到南京方向的货,2010-12-10
         3           wf  ,求到乌鲁木齐方向的货,2010-12-10
         4           wf  ,求到齐齐哈尔方向的货,2010-12-10
         5           wf  ,求到北京方向的货,2010-12-10
         6           wf  ,求到潍坊方向的货,2010-12-10
         7           wf  ,求到青州木齐方向的货,2010-12-10
         8           wf  ,求到临朐哈尔方向的货,2010-12-10
         9           wf  ,求到青州木齐方向的货,2010-12-10
         10           wf  ,求到临朐方向的货,2010-12-10查询语句:select * from table where charindex('潍坊',vnews)!=0 查询结果:6,7,8,9,10,也就说青州,临朐是潍坊下面的县市区,以此类推,插叙其他省市时,也要把对应的它下面包括县市区的关键字的数据查询出来!  其中市是变量,可以传递任意值,,根据市查询下面的包含县市区关键字的数据! 注:中国的所有省市县都已存放在一个表中!

解决方案 »

  1.   

    如果,中国的所有省市县都已存放在一个表中,这张表记录是递归关系,
    并且,city字段作为外键指向省市表的话,
    楼主的SQL是2005,可以用with as递归查询如果city不是外键的话,用charindex,like之类的函数,效率都是比较低的,
    数据量大时,可以做分面显示,建立索引也是必须的。
      

  2.   

    查询语句:select * from table where charindex('潍坊',vnews)!=0查询结果:6,7,8,9,10,也就说青州,临朐是潍坊下面的县市区,以此类推,插叙其他省市时,也要把对应的它下面包括县市区的关键字的数据查询出来!我想知道,从这个表里你怎么看出青州,临朐是潍坊下面的县市区不能你知道青州,临朐是潍坊下面的县市就能查出来,要青州同潍坊在表中有联系才行