[英]LIMIT results in MySQL?
好的; 这已经让我的大脑炸了几个小时。 我想我可能需要一个子查询,但我在这种事情上并不那么先进,所以任何正确方向的帮助或指示都将不胜感激。
这是我的查询....
$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_active
')是是(该字段中的数据是是/否)。
我想按 (' event_date
') ASC(此字段中的数据为yyyy-mm-dd
)对它们进行排序,因此它们会按日期显示来自数据库的最新条目。
当通过 WHILE 语句运行此类查询时,我想限制(或以某种方式控制输出)结果只显示 5 个结果。
好的,这一切正常,但是; 当我进入实际的输出显示时,我在实际显示的结果数量上有一个不稳定的输出......如果我有多个关闭的事件会发生什么,如event_active
是“ Off
”那么它几乎就像参数是从所有结果(包括event_active='Off'
)计算的,因此没有显示我希望它们如何显示?
希望这是有道理的......任何帮助将不胜感激。
SELECT *
FROM events
WHERE event_type = 'Christmas Listings' AND event_active='Yes'
ORDER BY event_date
LIMIT 0, 5
所以你的陈述更容易阅读..
我真的不确定你在问什么,但LIMIT
工作原理如下:
LIMIT
表示在您的查询完成并处理所有WHERE
语句后,仅返回前 5 个。
所有的结果,其中event_active
不是“是”将不会被显示,并在一切都忽略不计。
此结果与您在没有限制的情况下进行查询的结果相同,只需查看前 5 行。
那个查询应该没问题。 我会检查您的数据集(或者甚至更好,发布它!)。 您可能还想研究规范化数据库。 它会在未来帮助你。
我认为问题在于您的“event_active”。
MySQL 使用 0 和 1 来表示该字段是否为真/假、是/否、开/关。 尝试在 SELECT 语句中使用 0 和 1,除非该字段上的字段类型是 VARCHAR 并且您实际上正在使用这些词。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.