我使用下面的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