如何使用LIKE修复搜索查询

时间:2015-01-27 11:29:24

标签: c# sql sql-server database string

我是数据库编程的新手,我试图使用LIKE在数据库中搜索字符串。

当我搜索小说时,非小说类书籍也出现了。 如果关键字是小说,我该怎么做只显示小说行?

注意:我不仅要被允许搜索小说和非小说,还要从文本框中搜索ISBN,书名。

3 个答案:

答案 0 :(得分:0)

看起来您对如何使用LIKE查询感到困惑,请查看以下示例:

1 - SELECT * FROM books WHERE bookname LIKE 's%'; [It will return all books which starts from letter "S" in bookname]

2 - SELECT * FROM books WHERE bookname LIKE '%s'; [It will return all books which ending with letter "S" in bookname]

3 - SELECT * FROM books WHERE bookname LIKE '%Fiction%'; [It will return all books which contains letters "Fiction" in bookname]

4 - SELECT * FROM books WHERE bookname NOT LIKE '%Non%'; [It will return all books which not containing "Non" in bookname]

您可以更改适当的字段名称和表名。

希望以上将有所帮助。

答案 1 :(得分:0)

请参阅以下链接。它将帮助您更多地了解 LIKE 声明。

Use of LIKE query using SQL

对于搜索书名,以" Fiction"开头你必须使用如下所述的查询。

SELECT * FROM books WHERE bookname LIKE 'Fiction%';

答案 2 :(得分:0)

你应该能够做一些包含和排斥的事情:

SELECT * FROM Books WHERE BookName LIKE 'Fiction%' and BookName NOT LIKE '%Non-Fiction%'

根据您对文本框的说法,文本输入可以代表任何字段,假设您传递参数,您应该能够执行以下操作:

SELECT * FROM Books 
WHERE BookName LIKE '%' + @Input + '%'
OR ISBN LIKE '%' + @Input + '%' 
OR BookType LIKE '%' + @Input + '%' OR etc...

显然,如果您只是使用相同的搜索框来寻找“虚构”的书籍,这将为您提供一本名为“奇怪小说”的书。在这种情况下,您可能需要考虑多个搜索框。