2012-03-04 123 views
1

我正在为我的网站构建一个搜索功能,并希望通过两列进行搜索:标题和作者。Mysql搜索查询两列

查询:

SELECT title, bookID, publisher, pubDate, book_image, books.authorID, authors.author FROM books, authors WHERE books.authorID = authors.authorID 
      AND title LIKE '$queryString%' OR author LIKE '$queryString%'LIMIT 5 

当我按标题搜索这工作得很好,但是当我通过搜索作者,我得到的与搜索作者为作者的所有书籍的列表。显然这是不正确的。

如何修复此查询以成功搜索标题或作者?

回答

2

尝试以下:

SELECT title, bookID, publisher, pubDate, book_image, books.authorID, authors.author 
FROM books left join authors on books.authorID = authors.authorID 
WHERE (title LIKE '$queryString%' OR author LIKE '$queryString%') LIMIT 5 

我想建议你使用mysql.That 搜索将更快更高效的

+0

完美!谢谢! – 2012-03-04 10:34:46

0
SELECT title, bookID, publisher, pubDate, book_image, books.authorID, authors.author 
FROM books, authors 
WHERE books.authorID = authors.authorID 
     AND (title LIKE '$queryString%' OR author LIKE '$queryString%')LIMIT 5 

本应该做的工作

0

试试看:

SELECT bk.title, bk.bookID, bk.publisher, bk.pubDate, bk.book_image, bk.authorID, au.author 
FROM books bk, authors au 
WHERE bk.authorID = au.authorID AND bk.title LIKE '$queryString%' OR au.author LIKE '$queryString%' LIMIT 5