ALTER PROCEDURE dbo.search_result_cominfo @add_city int,@com_name varchar(50)

AS
SELECT userid, user_company, user_realname, user_tel, user_mobi, user_fax FROM User_Table
WHERE (user_city = @add_city) AND (user_company LIKE '%@com_name%')
RETURN怎么都搜索不到东西,数据库有符合条件的记录呀。请大家帮我看看怎么回事!

解决方案 »

  1.   

    要动态执行sql
    转换成字符串
      

  2.   

    LIKE '%@com_name%'==>LIKE '%' + @com_name +'%'
      

  3.   

    user_company LIKE '%'+@com_name+'%'
      

  4.   

    user_company LIKE '%' + @com_name + '%'
      

  5.   

    LIKE '%@com_name%'==>LIKE '%' + @com_name +'%'
      

  6.   

    LIKE '%@com_name%'
    改成
    like  '%' + @com_name+'%'
      

  7.   

    kao 
    不是显示0条回复么
    咋一提交就有这么多人到我前面了。
      

  8.   

    LIKE '%@com_name%'==>LIKE '%' + @com_name +'%'可以了,谢谢这么多朋友帮忙。我看到好多用 '%@com_name%' 的情况,怎么理解。 '%' + @com_name+'%'的区别呀。让以后别在犯这错了。
      

  9.   

    '%@com_name%'
    ==>表示一个字符串.就是'张三' 一样
      

  10.   

    如果是这样,字段值中必须像这样12312@com_name栽植 32r2f 才符合查询
      

  11.   

    ALTER PROCEDURE dbo.search_result_cominfo @add_city int,@com_name varchar(50)

    AS
    SELECT userid, user_company, user_realname, user_tel, user_mobi, user_fax FROM User_Table
    WHERE (user_city = @add_city) AND (user_company LIKE '%' + @com_name+'%')
    RETURN
    就可以了 因为'%@com_name%'会被错误的当成一整个字符串
      

  12.   

    那就太麻烦了。需要在用户添加记录时对其输入的数据进行修改。每个字中间都加个% 。
    先就这样吧。谢谢大家!再次特别感谢cpp2017(慕白兄) !