Database 如何在查询中同时使用LIKE和OR
以下是我更改搜索书名或作者的过程的代码:Database 如何在查询中同时使用LIKE和OR,database,sql-server-2008,Database,Sql Server 2008,以下是我更改搜索书名或作者的过程的代码: ALTER PROCEDURE [dbo].[SearchBook] @Search_Var varchar(50) AS BEGIN SELECT * FROM Book WHERE BookName LIKE '%@Search_Var%' OR BookAuthor LIKE '%@Search_Var%' END 我希望它通过匹配子字符串来显示书籍,也就是说,如果书名是基础化学,那么通过键入化学,我也应该能够得到结果。 但是上面
ALTER PROCEDURE [dbo].[SearchBook]
@Search_Var varchar(50)
AS
BEGIN
SELECT *
FROM Book
WHERE
BookName LIKE '%@Search_Var%' OR
BookAuthor LIKE '%@Search_Var%'
END
我希望它通过匹配子字符串来显示书籍,也就是说,如果书名是基础化学,那么通过键入化学,我也应该能够得到结果。
但是上面的代码工作不正常。您需要将搜索到的短语串联起来,如:
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%'
进行搜索是不可行的,查询优化器不会使用索引(如果存在任何索引)。工作正常,谢谢..!!:-)