0

我正在开发一个图书馆的搜索引擎,用户可以在其中查找书籍......搜索效果很好,但有些书籍有重复副本,以便更多人可以使用。我只想在搜索过程中显示一个副本,所以我尝试在查询中使用“DISTINCT”,但事实证明这些书有不同的 book_id,我不能排除 book_id,因为它用于识别要在详细信息页面上显示的个别书籍. 请问我该怎么做才能只显示一本书的副本?

    $query = "SELECT DISTINCT call_no,book_id,main_title,author1,itm_type,publdate,image,subj1 FROM records WHERE $dropdown LIKE '%$search%'" or die (mysql_error());
4

2 回答 2

0

尝试对所有书籍实例都相同的列使用 GROUP BY。可能是主标题?

$query = "SELECT call_no,book_id,main_title,author1,itm_type,publdate,image,subj1 FROM records WHERE $dropdown LIKE '%$search%' GROUP BY main_title" or die (mysql_error());
于 2013-09-21T17:10:11.700 回答
0

根据您的查询,您似乎需要重构您的表。像这样的东西:

Book_Table
 - id
 - title 
 - author

Catelog_Table
  - id 
  - book_id 

每本书的元数据都可以进入 Boot_table

您的个人书籍可以进入Catelog_table。

于 2013-09-21T17:34:56.673 回答