如何在查询中一起使用LIKE和OR

时间:2015-09-22 06:02:10

标签: database sql-server-2008

以下是我的代码,用于修改将搜索图书名称或图书作者的程序:

Step 1: 123 % 10 = 3; 
        Sum = 3
Step 2: 123 / 10 = 12;
        12 % 10 = 2;
        Sum = 5
Step 3: 123 / 100 = 1;
        Sum = 6;

我希望它通过匹配子字符串来显示书籍,即如果书名是基础化学,通过输入化学,我也应该能够得到结果。 但上面的代码工作不正常。

1 个答案:

答案 0 :(得分:2)

您需要连接搜索的短语,如:

ALTER PROCEDURE [dbo].[SearchBook]
   @Search_Var VARCHAR(50)
AS
BEGIN
  SELECT * 
  FROM Book 
  WHERE 
    BookName LIKE '%' + @Search_Var + '%' 
    OR BookAuthor LIKE '%' + @Search_Var + '%';
END

请注意,使用'%phrase%'进行搜索不具备SARG功能,如果存在,则查询优化工具不会使用索引。