You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写查询表中display_start最小日期记录的SQL语句?

正确的SQL写法:查询表中日期最小的记录

你的原始语句select * from campaign where campaign_display_start is minimum;不符合SQL语法,因为SQL里没有is minimum这种用法。下面给你几种常用的正确实现方式,适配不同的数据库场景:

方法1:通用写法(支持所有主流数据库)

这种方式会返回所有日期等于最小值的记录(如果有多个记录共享最小日期,都会被选中):

SELECT *
FROM campaign
WHERE campaign_display_start = (SELECT MIN(campaign_display_start) FROM campaign);

逻辑很简单:子查询先算出campaign_display_start列的最小值,主查询再匹配所有等于这个最小值的行。

方法2:用ORDER BY + LIMIT(适用于MySQL、PostgreSQL、SQLite等)

如果只需要任意一条最小日期的记录(即使有多个相同最小值),可以用这个更简洁的写法:

SELECT *
FROM campaign
ORDER BY campaign_display_start ASC
LIMIT 1;

通过ORDER BY ... ASC把日期从小到大排序,再用LIMIT 1取第一行就是最小的那条。

方法3:用TOP(适用于SQL Server、Access)

和上面的逻辑类似,只是语法换成TOP:

SELECT TOP 1 *
FROM campaign
ORDER BY campaign_display_start ASC;

补充:处理NULL值

如果campaign_display_start列可能存在NULL值,你可能需要先排除这些NULL再计算最小值,避免结果异常。比如修改方法1:

SELECT *
FROM campaign
WHERE campaign_display_start = (
    SELECT MIN(campaign_display_start) 
    FROM campaign 
    WHERE campaign_display_start IS NOT NULL
);

内容的提问来源于stack exchange,提问作者Khant Htet Naing

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 10:30:02