我想从过去的最新日期返回记录......但它不起作用
SELECT *
FROM EVENTS WHERE 1
AND discipline_id
IN ( 2 )
AND event_start_date < NOW( )
ORDER BY DATE( event_start_date ) ASC
event_start_date is of type date in the database ..
答案 0 :(得分:0)
仅按event_start_date
SELECT *
FROM EVENTS
WHERE discipline_id
IN ( 2 )
AND event_start_date < NOW( )
ORDER BY event_start_date DESC
此外,我不确定你为什么要做WHERE 1
,因为这总是会回归真实。
答案 1 :(得分:0)
如果您想从db中选择最新记录,请使用以下类型的查询
SELECT * FROM
TABLE_NAME
WHERE DATE IN (MAX(DATE))
答案 2 :(得分:0)
差不多半小时过去了,没有回复/反馈,一次一步地查询你的问题......并以此为基础。
一次一步......首先,简化为一个ID和所有日期,但按照...应用订单
SELECT *
FROM EVENTS
WHERE discipline_id = 2
ORDER BY event_start_date DESC
现在,看看结果......如果它没有返回任何内容,你可能没有数据,或者其他地方没有更大的问题。如果该操作有效,那么由于事件日期是降序,您应该能够看到是否有任何记录在您尝试的NOW()标准之前。然后只需添加NOW()条件
SELECT *
FROM EVENTS
WHERE discipline_id = 2
AND event_start_date < NOW()
ORDER BY event_start_date DESC
如果没有记录,那么就是这样,但是这个查询中没有任何复杂的东西......是的,这个数据最近的日期是在列表的顶部(vs最旧的现在在底部)。如果您只想在now()之前的MOST RECENT事件,那么只需应用限制1即可获得最新的
SELECT *
FROM EVENTS
WHERE discipline_id = 2
AND event_start_date < NOW()
ORDER BY event_start_date DESC
LIMIT 1