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


How can i display just one copy of an item from mysql database

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

尝试使用 GROUP BY for 列,这对于所有书籍实例都是一样的。大概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());

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

Book_Table
 - id
 - title 
 - author
Catelog_Table
  - id 
  - book_id 

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

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