关于写SQL查询语句,我是实在不会写了,谁能解答这个问题????高分!!!

时间:2021-12-29 21:55:13
请问这个sql语句怎么写?

我的数据库结构类似如下:

   ID Name

   ... ...

    2 中国河北省石家庄市

    3 中国河北省石家庄市新华区

    4 中国河北省石家庄市长安区

    5 中国河北省保定市

    7 中国河北省保定市新华区

    8 中国河北省保定市长安区

    10 中国河南省郑州市

    11 中国河南省郑州市AAA区

    12 中国河南省郑州市BBB区

    13 中国河南省驻马店市

    14 中国河南省驻马店市XXX区

    15 中国河南省驻马店市YYY区
    .... ...
    自动编号 已排序好了

现在要求通过查询实现此功能:
例如:输入关键字“中国” 则 2,5,10,13 号记录被筛选出
      输入关键字“中国河北省” 则 2,5 被选出
      输入关键字“中国河南省” 则 10,13 号记录被选出
      输入关键字“中国河北省石家庄市” 则只应有2号记录被选出

也就是说,在一个查询中,只筛选出符合条件的主记录,比如查询中国河北省石家庄市时,有三个符合条件,但是后两个是前一个子记录,所以查询结果中不显示,请问高手这个Sql语句怎么实现????

10 个解决方案

#1


select Name from <表的名字> where name like '%' + <关键字> +'%'

#2


这样不行!麻烦您先看清楚题好不好??

#3


加一个字段识别是否为子记录

#4


好象还要其他属性,比如类别:省、市、区... 形式为 "char ID, integer type"就很容易了
select table.id from table where left(id,len(part_name))=part_name and type=...

#5


有一个笨想法,就是先select*再将纪录逐条判断,是不是很累呀?

#6


select name from ... where name like 关键字+‘%市’

#7


select id from table where name like inputkeyword+'%市';

#8


同意 Hoarfrost(霜) 

#9


>>在一个查询中,只筛选出符合条件的主记录
看不到你的主纪录和子纪录是怎么关联的???怎么会有这种数据库的设计???

#10


多加一个条件吧

#1


select Name from <表的名字> where name like '%' + <关键字> +'%'

#2


这样不行!麻烦您先看清楚题好不好??

#3


加一个字段识别是否为子记录

#4


好象还要其他属性,比如类别:省、市、区... 形式为 "char ID, integer type"就很容易了
select table.id from table where left(id,len(part_name))=part_name and type=...

#5


有一个笨想法,就是先select*再将纪录逐条判断,是不是很累呀?

#6


select name from ... where name like 关键字+‘%市’

#7


select id from table where name like inputkeyword+'%市';

#8


同意 Hoarfrost(霜) 

#9


>>在一个查询中,只筛选出符合条件的主记录
看不到你的主纪录和子纪录是怎么关联的???怎么会有这种数据库的设计???

#10


多加一个条件吧