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