我正在使用的查询我在3个不同区域显示结果。我想要设置限制的其中一个区域,其中两个我想将它们限制为一个。我正在考虑那些特定的两个领域,我可以在那里添加限制。我只是不确定如何做到这一点,如果这是最好的方式。
这是我的问题:
$comments_query = "SELECT * FROM airwaves_comments aw,users u WHERE u.id=aw.from_id AND aw.FROM_id=aw.to_id AND aw.from_id=".$profile_id." order by aw.created_on desc" ;
以下是显示我不想限制的结果。
if ($airwave)
{
foreach ($airwave as $airwave_comment_row)
{
// stuff
}
}
以下是我希望限制为一个的结果:
if ($airwave && $profile_id == $session_id)
{
foreach ($airwave as $airwave_comment_row)
{
echo "<div id='profile_airwave'>";
echo $airwave_comment_row['comment'];
echo "<br />";
echo "<span class='profile_airwave_info'>";
echo $airwave_comment_row['created_on'];
echo "</span>";
echo "</div>";
}
}
这可能,他们共享相同的查询?或者我是否必须编写新查询?
感谢
答案 0 :(得分:1)
您可以像这样更改您的查询,
$comments_query = "SELECT * FROM airwaves_comments aw,users u WHERE u.id=aw.from_id AND aw.FROM_id=aw.to_id AND aw.from_id=".$profile_id." order by aw.created_on desc" ;
if($profile_id == $session_id){
$comments_query .= " LIMIT 0,1"
}
或强> 您可以尝试使用相同的逻辑
if ($airwave && $profile_id == $session_id)
$airwave_comment_row = $airwave[0];
// takes the first row
}else if($airwave){
foreach ($airwave as $airwave_comment_row)
{
// stuff
}
}
答案 1 :(得分:0)
我认为你可以使用UNION查询,但你需要检查这是否是最佳方法 - 如果它有效。
我会检查,但我目前无法访问MySQL服务器。
(SELECT * FROM table WHERE category = 1)
UNION
(SELECT * FROM table WHERE category = 2 LIMIT 10)
UNION
(SELECT * FROM table WHERE category = 3)
安东尼。