2012-03-04 11 views
1

私のWebサイトの検索機能が不十分で、タイトルと著者の2つの列で検索したいと考えています。Mysqlの検索クエリの2つの列

問合せ:

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 

私はタイトルで検索する場合、これは正常に動作しますが、私は著者で検索するとき、私は著者として執筆者で検索して、すべての本のリストを取得します。明らかにこれは間違っています。

このクエリを修正して、タイトルまたは著者を検索するにはどうすればよいですか?

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で検索を使用することができ提案したいと効率的な

答えて

2

以下試してみてください試してみてください:

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 
+0

パーフェクト!ありがとうございました! –

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