语句如下:
"SELECT count(*) as iCount from qiye where qy_f like '%"+hfshu1+"_%'"
---------------
当qy_f=2_71,
hfshu1=1 或者hfshu1=2  hfshu1=7 的时候都有iCount=1;
=================
问题是:为什么呢?我要的结果应该是:hfshu1=2的时候才有iCount=1 , 因为在qy_f=2_71,里满足qy_f like ‘%2_%’;
请知情人解释一下是怎么回事

解决方案 »

  1.   

    "SELECT count(*) as iCount from qiye where qy_f like '%"+hfshu1+"\'_\'%'" \'_\'  才代表_吧  
      

  2.   

    like '%hfshu1%'即是只要包括有hfshu1的都符合;
    like 'hfshu1%'是说,满足以hfshu1开头的都符合;
    like '%hfshu1'是说,满足以hfshu1结束的都符合。
      

  3.   

    "SELECT count(*) as iCount from qiye where qy_f like '%"+hfshu1+"\_%'" 
    这样吗?
      

  4.   

    sql 中转义符是'所以是"SELECT count(*) as iCount from qiye where qy_f like '%"+hfshu1+"\'_\'%'" 
      

  5.   

    因为当字段qy_f=1_15,2_71, 3_100,3_101,3_104,1_69,8_99,...
    变量hfshu1的值有1或2或3,....
    -------------
    我要实现的是当变量hfshu1的值为1时候,字段qy_f要是包含"1_"的这个字符串,iCount就返回值为1,
    如上值,当变量hfshu1的值为4时候,字段qy_f没有包含"4_"的这个字符串,iCount就返回值为0,
    ------------
    就这个意思,
      

  6.   

    http://blog.csdn.net/fenglibing/archive/2007/11/01/1862178.aspx
      

  7.   

    where qy_f like '%"+hfshu1+"/_%' ESCAPE '/'
      

  8.   

    string.Format("SELECT count(*) as iCount from qiye where qy_f like LIKE '%{0}%'", hfshu1+"_")
      

  9.   

    _是通配符,可以加[],用[_]来表示:
    "SELECT count(*) as iCount from qiye where qy_f like '%"+hfshu1+"[_]%'" 
      

  10.   

    谢谢大家,这个问题已解决。
    又引生出一个问题:
    写法一:
    qy_f like '%"+Request.QueryString["f_s_id"]+"_"+Request.QueryString["f_id"]+"%'
    ================================
    写法二:
    qy_f like '%"+Request.QueryString["f_s_id"]+"[_]"+Request.QueryString["f_id"]+"%'
    =====================
    结果是一样?
      

  11.   

    通配符 含义 
    % 包含零个或更多字符的任意字符串。 
    _ 任何单个字符。 
    [ ] 指定范围(例如 [a-f])或集合(例如 [abcdef])内的任何单个字符。 
    [^] 不在指定范围(例如 [^a - f])或集合(例如 [^abcdef])内的任何单个字符。