[英]How do I add a limit to query results in a if statement?
我有一个查询,我正在在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>";
}
}
这对他们来说可以共享相同的查询吗? 还是我必须编写一个新查询?
谢谢
您可以这样更改查询,
$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
}
}
我认为您可以使用UNION查询,但是您需要检查这是否是最佳方法-如果可行。
我会检查一下,但目前无法访问MySQL服务器。
(SELECT * FROM table WHERE category = 1)
UNION
(SELECT * FROM table WHERE category = 2 LIMIT 10)
UNION
(SELECT * FROM table WHERE category = 3)
安东尼
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.