我使用下面的PHP'和'MySQL的代碼,列出從我的數據庫最近的話題,並在下面列出每個這些標題的相關主題的書籍......MySQL:查詢另一個查詢結果並返回兩個結果?
// First Query
$query= mysql_query("SELECT * FROM my_table ORDER BY id DESC limit 0,20");
$result = mysql_query($query)
while($row = mysql_fetch_array($result)){
echo "Main Topic: ".$row['title'];
$main_title = $row['title'];
echo "Related to this Topic:";
// Second Query
$related_query= mysql_query("
SELECT * MATCH (title)
AGAINST('$main_title'IN NATURAL LANGUAGE MODE)AS
score FROM my_table MATCH(title) AGAINST('$main_title'IN NATURAL LANGUAGE MODE)
HAVING score > 10 ORDER BY score DESC
");
$related_result = mysql_query($related_query)
while($related_row = mysql_fetch_array($related_result)){
echo "<br>". $related_row['title'];
}
}
這工作得很好。但問題是它在循環中使用MySQL查詢。 (第二個查詢運行20次)我讀過它不是一個好的編程習慣,因爲它大量使用服務器資源。
那麼,有沒有辦法做到這一點只有一個查詢或兩個查詢,而無需在循環內運行查詢?
謝謝
你不能存儲在一個陣列中的所有$ main_titles,然後在第二個查詢所有的$ main_titles陣列中使用的「IN」操作? – costa
@costa在這種情況下,有兩個問題。1.我可以在全文搜索中使用IN操作嗎? 2.如果我使用IN操作,它將返回所有與所有主標題相關的行作爲批量。但我希望每個主標題SEPARATELY .. – nidahasa