Php 限制MySQL中的结果?
嗯,;这已经折磨了我好几个小时了。我想我可能需要一个子查询,但我在这方面没有那么先进,所以任何帮助或指向正确方向的指针都将不胜感激 这是我的疑问Php 限制MySQL中的结果?,php,mysql,limit,Php,Mysql,Limit,嗯,;这已经折磨了我好几个小时了。我想我可能需要一个子查询,但我在这方面没有那么先进,所以任何帮助或指向正确方向的指针都将不胜感激 这是我的疑问 $query = "SELECT * FROM events WHERE event_type = 'Christmas Listings' AND event_active='Yes' ORDER BY event_date ASC LIMIT 5"; $result= mysql_query($query); 好的。。。现在让我们简单地了解一下
$query = "SELECT * FROM events WHERE event_type = 'Christmas Listings' AND event_active='Yes' ORDER BY event_date ASC LIMIT 5";
$result= mysql_query($query);
好的。。。现在让我们简单地了解一下我想要实现的目标,了解我想要实现的目标:
我想检查一下我得到的事件类型“event_type”,即圣诞节列表,因为此列中有多种类型
我想检查事件是否处于活动状态“事件\活动”是否为是此字段中的数据为是/否
我想按'event_date'ASC对它们进行排序。此字段中的数据为yyyy mm dd,因此它们根据数据库中的日期显示最新条目
在通过WHILE语句运行此类查询时,我希望限制或以某种方式控制结果的输出,使其仅显示5个结果
好的,这一切都有效,但是;当我看到实际的输出显示时,实际显示的结果数量不稳定。。。发生的情况是,如果我有多个被关闭的事件,比如在event\u active中是“off”,那么它几乎就像参数是从包括event\u active='off'的所有结果中计数,因此没有显示我期望它们如何显示
希望这有意义。。。。我们将非常感激您的帮助。我真的不知道您在问什么,但LIMIT的作用如下: 限制意味着在完成查询并处理所有WHERE语句后,只返回前5条语句 如果事件_active不是“Yes”,则不会显示所有结果,并且会忽略所有结果
这个结果与不受限制地执行查询的结果相同,只需查看前5行即可。该查询应该可以。我会检查你的数据集,或者更好,发布它!。您可能还需要考虑规范化数据库。我认为,问题在于你的“活动” MySQL使用0和1来指示字段是否为真/假、是/否、开/关。请尝试在SELECT语句中使用0和1,除非该字段上的字段类型是VARCHAR,并且您实际上正在使用这些词
SELECT *
FROM events
WHERE event_type = 'Christmas Listings' AND event_active='Yes'
ORDER BY event_date
LIMIT 0, 5
所以你的陈述更容易理解
您应该使用1/0而不是是/否
限制不包括所有行!
第一步-执行查询,包括WHERE
第二步-订购方式
第三步-限制
如果在列上设置了索引,则可以进行排序。分拣将在5行之后停止,
也就是说,它会变得更快
ORDER BY命令中的ASC不是必需的,因为ASC是默认值
请注意,必须返回5条或更多记录,限制才能表示任何内容如果您想要最新的条目,则需要按事件日期描述而不是ASCfine排序-然后您可以将其标记为解决方案;