select min(name)
  from mytable
 where name like 'MYSTRING';

解决方案 »

  1.   

    select min(name)
      from mytable
    where name like 'MYSTRING%'--mystring = '中国' OR .....
      

  2.   

    sorry!!!select id,name
      from mytable x
    where name like 'MYSTRING%'
      and not exists (select 'x'
                        from mytable y
                       where x.name != y.name
                         and x.name like y.name || '%')it works but not good. let me think again.
      

  3.   

    i don't know what on earth u want,maybe the below is what u r desiring?      输入关键字“中国” 则 2,10号记录被筛选出
          输入关键字“中国河北省” 则 2,5 被选出
          输入关键字“中国河南省” 则 10,13 号记录被选出
          输入关键字“中国河北省石家庄市” 则只应有2号记录被选出
      

  4.   

    意思基本明白,这种例子很多,但不建议用SQL实现,推荐再加个检索名称字段,和一个权限循环表。很方便。
      

  5.   

    如果这样你把你要的数据放在recordset里,让后在处理,做循环,找出你想要得的数据!
      

  6.   

    foolflyfish:
    怎麼你這個名字很熟?這倒也是.
    帖主的要求太智能化了.
      

  7.   

    今天终于把我的ASP坛子完成了结果下午在水园受了一肚子的气于是回家来看看:)
      

  8.   

    progame,你回来了!太好了!
    你在这边气氛会活跃很多的!上次你说的“原来是赔本生意”一句话让我乐了老半天。希望以后能经常听到这样点睛之笔!至于我写的那段代码,我做了一遍完整的试验,结果一点都没有错。你有兴趣的话我把脚本发给你测试一下。
      

  9.   

    大家好, 久违斑竹!
    以下的语句还可以精简, 小弟实在没有时间了,select * from tab_test where rowid in (select min(rowid)  from tri_test  where name like '中国%') ;再会 。
      

  10.   

    用ROWID不行的,这在前面的贴子了讨论过。
    而且
    select * from tab_test where rowid in (select min(rowid)  from tri_test  where name like '中国%');
    肯定只能返回一条纪录
      

  11.   

    这样试试
    select * from tab_test where rowid in (select min(rowid)  from tri_test  where name like '中国???');
    保证只有三个后接字符
      

  12.   

    大家好, 这个问题用rowid与union联用是可以解决的.谢谢斑竹提出的意见。
    rowid,Union很强大请大家注意。1.Test
    SQL> select * from tri_test ;
    NAME               NL
    ---------- ----------
    l                   1
    lx                  1
    lixing              1
    x                   2
    xg                  2
    xing                22.SQL
    select * from tri_test where rowid  in 
    (select rowid  from tri_test  where name like 'x%'   --x是指子字符串
    minus
    select rowid  from tri_test  where name = 'x')
    /3.resultNAME               NL
    ---------- ----------
    xg                  2
    xing                24.success
      

  13.   

    对于该问题,我分析了一下,这个问题的关键好像是要找出数据库中的三级地名,即把到具体到市一级的地名都检索出来,然后使用like检索就方便了。
    挑出三级地名的方法如下:(我使用sqlserver的语句)
    1。先选出三级以上的地名:
    select a.ID from t1 a,t1 b where a.name <> b.name and a.name like b.name + '%'
    2。取反可得三级地名(考虑到速度,使用左连接):
    select c.* from t1 c left outer join (select a.ID from t1 a,t1 b where a.name <> b.name and a.name like b.name + '%') d on c.ID = d.ID where d.ID is null
    3。最后检索符合条件的三级地名:
    select c.* from t1 c left outer join (select a.ID from t1 a,t1 b where a.name <> b.name and a.name like b.name + '%') d on c.ID = d.ID where d.ID is null and c.name like '中国%'这个问题如果数据库设计得好,不用这么复杂,不过拿来作为技术讨论,还挺有意思的。
      

  14.   

    后话:在回完贴后,才仔细地看了一下大家的回贴(这个问题挺吸引我,怕影响自己的思路,开始没看回贴),发现三千兄早有回贴在上头,可能使用的是oracle的语法,但思路是一样的。让我有点李白在黄鹤楼的感觉。这个问题,我想了快半个小时才彻底想清楚,三千兄不愧为高手,10分钟就搞定了,我现在想说的只有一个字:“我对你的景仰有如滔滔江水连绵不绝,又如黄河泛滥一发不可收拾,不如烧黄纸,斩鸡头,拜兄弟”(快跑,又该有人扔石头了)