繁体   English   中英

如何按ID显示每天一条记录?

[英]how to show one record per day order by id?

我有这个小脚本,每天都有一个智慧。

所以我有三列。

Id         wisdom          timestamp
1          wisdon 1        4/1/2012
2          wisdon 2        4/1/2012
3          wisdon 3        4/2/2012

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

我环顾了你的网站,但不幸的是我找不到类似于我想要的东西。

我也得到了这段代码

$sql = mysql_query("SELECT DISTINCT id FROM day_table group by timestamp");

但这也行不通。 有任何想法吗?

是否可以制作24小时更新智慧日期的计数器? 请给我一些帮助。

您可以创建另一个名为wisdom_of_day

该表将包含以下列,id,wisdom_id,date

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

然后,您可以根据日期查询来检索当天的智慧。


我可能会错误地阅读您的问题而您只想为每天选择一个智慧,但您想要显示多天,并且您希望从表中获取数据。

如果是这样,您的查询不起作用的原因是因为您按时间戳分组,其中包括日期和时间。 您需要按日期对其进行分组,以便根据需要进行分组。


这是一个将按日分组的查询。 这仅在您具有时间戳字段且未在int列上存储unix timstamp时才有效。

select id, wisdom, date(timestamp) date_only from day_table group by date_only order by date_only asc;

嗯,我注意到你的时间戳值是某种日期格式,可能是一个字符串? 如果是这样,上述查询可能无效。

自1970年以来首次计算天数

SELECT DATEDIFF(CURDATE(), '1970-01-01')

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

SELECT * FROM table ORDER BY RAND(15767) LIMIT 1;

以数字为参数的兰德是确定性的。

完整查询:

SELECT * FROM table ORDER BY RAND((SELECT DATEDIFF(CURDATE(), '1970-01-01'))) LIMIT 1;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM