我正在使用php和mysql
您好我有几张表格中有关于图书的信息。
一张桌子就像这样
id,bookTitle,BookText
另一个是这样的
id,bookid,amountofsales
我想从一张表中搜索本书的文本和书名,但也能够从其他表中包含数量的销售额,以便给结果带来可能的偏见。
因此,例如,如果第1册有5万销售,并且匹配搜索“油”但书2有23,000销售,但也匹配“油”书1将稍微更相关。
然而,这只会产生一个小的偏见,因为如果一个人更多地匹配油,那么这应该仍然是最重要的结果。
有什么想法吗?
答案 0 :(得分:1)
你必须加入你的桌子:
$searchQuery = "oil";
$sql = "SELECT a.bookTitle, a.BookText, b.amountofsales FROM table1 a, table2 b WHERE a.id = b.bookid AND (a.bookTitle LIKE '%".$searchQuery."%' OR a.BookText LIKE '%".$searchQuery."%') SORT BY b.amountofsales DESC";
$result = mysql_query($sql);
while( $obj = mysql_fetch_object($result) )
{
echo $obj->bookTitle." has been sold ".obj->amountofsales." times and is relevant to your search";
}
请记住,我没有测试过上面的代码,但它可能会给你一个想法。
答案 1 :(得分:0)
您可以通过概述MySQL查询来关联两个表中的两个元组,如下所示:
SELECT B.bookTitle,B.bookText,S.amountOfSales FROM book B,sales S WHERE S.id = B.id ORDER BY S.amountOfSale DESC;
这将验证id的匹配(意味着不同的表是相关的,因为id是相同的),并提取所有相关数据。然后你只需解释数据。
不过要小心搜查外卡,他们可以提取大量不相关的数据,例如一本关于铝箔的书可能会在油之前拉起来。