确定;这已经煎了我几个小时。我想我可能需要一个子查询,但我不是那种先进的,所以任何帮助或指向正确方向的人都会非常感激。
这是我的查询......
$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
)对它们进行排序,以便它们按日期显示DB中的最新条目。 / p>
我希望LIMIT(或以某种方式控制输出)结果在通过WHILE语句运行此类查询时仅显示5个结果。
好的,这一切都可以,但是;当我到达实际的输出显示时,我实际显示的结果有多少输出...如果我有多个事件被关闭,会发生什么,如event_active
中的Off
1}}'那么它几乎就像参数是从所有结果中计算出来的(包括event_active='Off'
)因此没有显示我期望它们如何显示?
希望这是有道理的......任何帮助都会感激不尽。
答案 0 :(得分:2)
SELECT *
FROM events
WHERE event_type = 'Christmas Listings' AND event_active='Yes'
ORDER BY event_date
LIMIT 0, 5
所以你的陈述更容易阅读..
答案 1 :(得分:1)
我真的不确定你在问什么,但LIMIT
的工作原理如下:
LIMIT
表示在查询完成后,处理了所有WHERE
语句,只返回前5个语句。
不会显示event_active
不是“是”的ALl结果,并且在所有内容中都会被忽略。
此结果与没有限制的查询结果相同,只需查看前5行。
答案 2 :(得分:0)
该查询应该没问题。我检查你的数据集(甚至更好,发布它!)。您可能还想查看规范化数据库。它将来会帮助你。
答案 3 :(得分:0)
我认为问题在于你的'event_active'。
MySQL使用0和1来指示该字段是真/假,是/否,开/关。尝试在SELECT语句中使用0和1,除非该字段上的字段类型是VARCHAR,并且您实际上正在使用这些单词。