本帖最后由 yyoinge 于 2013-06-27 16:59:35 编辑

解决方案 »

  1.   

    like 就是模糊查询呀,如果要精确可以用等号。如果一定要用like 而且要控制结果只能在结果中进行过滤。
      

  2.   


    create table ta(id int, bm varchar(30))
    go
    insert into ta select 1, '01'
    insert into ta select 1, '01212'
    insert into ta select 1, '013343'
    insert into ta select 1, '01212333'
     
    DECLARE @p VARCHAR(20)
    SET @p='01'
    select TOP 1 * from ta where bm like @p+'%' ORDER BY LEN(bm)-LEN(@p)--DROP TABLE ta
      

  3.   

    where substring(bm,1,len('自定义输入的值'))='自定义输入的值'
      

  4.   

    同意楼上的可以用SUBSTRING获得,从第一位取的总长度-LEN(固定长度)就可以了。
      

  5.   

    本帖最后由 roy_88 于 2013-06-27 23:06:14 编辑
      

  6.   

    select * from ta where CHARINDEX(bm,'自定义录入的值')>0
      

  7.   

    猜测楼主的意思是:sql框架是固定了,如何在 自定义录入里做文章?好像只能通过sql注入了自定义录入的值===肯定匹配失败%' or bm='真正的录入值' or bm like '肯定匹配失败
      

  8.   

    相信以下就是楼主想要的答案:select * from ta where bm like '01[^_]%'
      

  9.   

    like  不就是模糊查询么