问题:
一个用户在自然天一天只能投票一次。
需要查询出当前用户的投票时间是否在当天。
解决方法有:
1. 将unix时间戳转换成date格式进行比较
SELECT
from_unixtime(`time`) as feedtime, bid, uid, `type`
FROM feeds
where DATE_FORMAT(FROM_UNIXTIME(`time`),'%Y-%m-%d') = DATE_FORMAT(NOW(), '%Y-%m-%d')
order by `time` desc
2. 将当天时间转换成unix时间戳进行比较
SELECT * FROM feeds where `time` > unix_timestamp(CURDATE()) and `time` < unix_timestamp(CURDATE())+86400 order by `time` desc
相比较,第二种方法的效率会更高一些。
因为time如果不是索引,会消耗运算的效率。
用户投票查询优化
本文介绍了一种优化用户投票查询的方法,通过两种不同的SQL查询策略对比,展示了如何更高效地检查用户当天是否已投票。
3026

被折叠的 条评论
为什么被折叠?



