首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何按id显示一天一条记录?

如何按id显示一天一条记录?
EN

Stack Overflow用户
提问于 2012-04-02 01:47:55
回答 2查看 180关注 0票数 1

我有一个小脚本,每天展示一种智慧。

所以我有三列。

代码语言:javascript
运行
复制
Id         wisdom          timestamp
1          wisdon 1        4/1/2012
2          wisdon 2        4/1/2012
3          wisdon 3        4/2/2012

我想为每一天获取一个智慧数组

我浏览了一下你的网站,但不幸的是我没有找到与我想要的相似的东西。

我还得到了下面的代码

代码语言:javascript
运行
复制
$sql = mysql_query("SELECT DISTINCT id FROM day_table group by timestamp");

但这也不起作用。有什么想法吗?

可以做一个24小时更新智慧日期的计数器吗?请帮帮我。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-02 02:00:25

您可以创建另一个名为wisdom_of_day的表

该表将包含以下列: id、wisdom_id、date

基本上每天你都可以从你的智慧表中随机选择一个智慧,并将其插入智慧日表中。您还可以向日期列添加约束,使其不同。重要的是,它是一个日期列,而不是时间戳,因为您并不关心时间。

然后,您可以通过基于日期进行查询来检索当天的智慧。

我可能读错了您的问题,您只想为每一天选择一种智慧,但您希望显示多天,并希望从表中获取数据。

如果是这样,那么查询不起作用的原因是因为您是按照包含日期和时间的时间戳进行分组的。您需要按日期对其进行分组,以便按您所需的方式进行分组。

下面是一个查询,它将正确地按日期分组。只有当您有一个时间戳字段并且没有在int列上存储unix时间戳时,这才会起作用。

代码语言:javascript
运行
复制
select id, wisdom, date(timestamp) date_only from day_table group by date_only order by date_only asc;

嗯,我注意到你的时间戳值是某种日期格式,可能是一个字符串?如果是这样的话,上面的查询可能不会工作。

票数 2
EN

Stack Overflow用户

发布于 2012-04-02 01:54:58

自1970年以来首次计算天数

代码语言:javascript
运行
复制
SELECT DATEDIFF(CURDATE(), '1970-01-01')

然后在RAND中插入此编号,例如:

代码语言:javascript
运行
复制
SELECT * FROM table ORDER BY RAND(15767) LIMIT 1;

以数字为参数的随机数是确定性的。

完整查询:

代码语言:javascript
运行
复制
SELECT * FROM table ORDER BY RAND((SELECT DATEDIFF(CURDATE(), '1970-01-01'))) LIMIT 1;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9966712

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档