有张表tmp1
id     route
1      1路
2      2路
3      11路
4      106路
5      郊区1路
6      夜间1路
我输入“1”,要只得到
1      1路
5      郊区1路
6      夜间1路
这个语句怎么写呢?  select * from tmp1 where route  like ……,

解决方案 »

  1.   

    select * from tmp1 where route  like "%1%"
      

  2.   

    我把数据说全点吧tmp1
    id    route 
    1      1路 
    2      2路 
    3      11路 
    4      106路 
    5      郊区1路 
    6      夜间1路 
    7      61路
    8      91路
    9      鼓扬线
    10     东奥线
    11     地铁1号线用户输入“1”,可以得到的结果是
    1      1路 
    5      郊区1路 
    6      夜间1路 
    11     地铁1号线
      

  3.   

    弟弟,我给你个思路,这个在SQL中解决很困难,但是在JSP中解决就很容易,建议你在程序语言中解决这个问题。
      

  4.   

     select * from tmp1 where route like '%[!0-9]1[!0-9]%'没环境测试,一个想法!
      

  5.   


    declare @t table (id int,route varchar(10)) 
    insert into @t
    select 1,      '1路'     union 
    select 2,      '2路'     union
    select 3,      '11路'    union
    select 4,      '106路'   union
    select 5,      '郊区1路' union
    select 6,      '夜间1路' 
    declare @p varchar(10)set @p='1'
    select id,route
    from @t
    where (isnumeric(@p)=1 and ','+route like '%[^0-9]'+@p+'[^0-9]%')
       or (isnumeric(@p)=0 and charindex(@p,route)>0)/*
    id          route      
    ----------- ---------- 
    1           1路
    5           郊区1路
    6           夜间1路(所影响的行数为 3 行)
    */set @p='区'
    select id,route
    from @t
    where (isnumeric(@p)=1 and ','+route like '%[^0-9]'+@p+'[^0-9]%')
       or (isnumeric(@p)=0 and charindex(@p,route)>0)/*
    id          route      
    ----------- ---------- 
    5           郊区1路(所影响的行数为 1 行)
    */
      

  6.   

    可能是这样的declare @p varchar(10)set @p='1路'
    select *
    from tmp1
    where (isnumeric(@p)=1 and ','+route like '%[^0-9]'+@p+'[^0-9]%')
       or (isnumeric(@p)=0 and ','+route like '%[^0-9]'+@p+'%')
      

  7.   


    再修改一下:
    set @p='1路'
    select id,route
    from @t
    where ','+route+',' like '%[^0-9]'+@p+'[^0-9]%'/*
    id          route      
    ----------- ---------- 
    1           1路
    5           郊区1路
    6           夜间1路(所影响的行数为 3 行)*/
      

  8.   

    declare @t table (id int,route varchar(10)) 
    insert into @t
    select 1,      '1路'     union 
    select 2,      '2路'     union
    select 3,      '11路'    union
    select 4,      '106路'   union
    select 5,      '郊区1路' union
    select 6,      '夜间1路' union
    select 7,      '1'
    declare @s varchar(10)
    set @s='1'
    select * from @t where ' ' + route + ' ' like '%[^0-9]' + @s + '[^0-9]%'
      

  9.   

    那就换种写法
    declare @t table (id int,route varchar(10)) 
    insert into @t
    select 1,      '1路'     union 
    select 2,      '2路'     union
    select 3,      '11路'    union
    select 4,      '106路'   union
    select 5,      '郊区1路' union
    select 6,      '夜间1路' union
    select 7,      '1'
    declare @s varchar(10)
    set @s='1'
    select * from @t where patindex('%[^0-9]' + @s + '[^0-9]%',' ' + route + ' ')>0