我是数据库编程的新手,我试图使用LIKE在数据库中搜索字符串。
当我搜索小说时,非小说类书籍也出现了。 如果关键字是小说,我该怎么做只显示小说行?
注意:我不仅要被允许搜索小说和非小说,还要从文本框中搜索ISBN,书名。
答案 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 声明。
对于搜索书名,以" 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...
显然,如果您只是使用相同的搜索框来寻找“虚构”的书籍,这将为您提供一本名为“奇怪小说”的书。在这种情况下,您可能需要考虑多个搜索框。