如何从mysql数据库中只显示一个项目的副本

时间:2013-09-21 16:50:29

标签: php html mysql

我正在开发一个图书馆的搜索引擎,用户可以在这里搜索图书...搜索效果很好,但有些图书有重复的副​​本,以便更多人可以使用。我想在搜索过程中只显示一个副本,所以我尝试在我的查询中使用“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());

2 个答案:

答案 0 :(得分:0)

尝试将GROUP BY用于所有图书实例的相同列。可能是main_title?

$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());

答案 1 :(得分:0)

按照您的查询,看起来您需要重构您的表格。像这样:

Book_Table
 - id
 - title 
 - author

Catelog_Table
  - id 
  - book_id 

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

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