扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
这个问题是需要你在建立数据库的时候进行设置的。
成都创新互联长期为上千多家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为榆中企业提供专业的成都网站设计、成都做网站,榆中网站改版等技术服务。拥有十余年丰富建站经验和众多成功案例,为您定制开发。
我们用phpmyadmin的操作来解决它:
1、
用phpmyadmin打开你的数据库,找到你的表test,打开打点击打开,处于结构状态;
2、
然后选择编辑id这个字段,
3、
然后会看到这个字段里有如下属性:字段
类型
长度/值
整理
属性
Null
默认
额外
;
4、
我们需要设置的就在这个额外中,选择下拉列表,里面只有一个选项:auto_imcrement,这就是自动累加的意思;
5、
执行保存,OK,这回你再不给id这个字段进行赋值的时候,mysql会对这个字段进行自动累加。
datetime类型字段累加原则上可以直接使用sum函数的,例如:
select sum(logtime) from logRecords
尽管可以执行,但是这种对于“时刻”的累加数是没有意义的。对于mySql来说其实际算法是将datetime类型字段值按4位年、2位月、2位日、2位时、2位分、2位秒顺序组成一个数字后再进行累加。假如表中只有两条记录,登录时间分别是
logtime
2016-07-15 13:55:12
2016-07-15 13:50:20
Sum累加的结果是:40321430270532,其实是没有太多意义的,除非编写自定义函数将其转换成时间日期的显示格式,也就是两千多年后的某个日子与时间,能说明什么呢?。
一般来讲,累加“时刻”没有意义,但是累加"用时"是有意义的, 如果需要对datetime类型字段进行累加,选取其中的单纯一种时间单位数(如日数、时数、秒数等)后再进行累加,才会有意义
逐行累加,最好是在应用程序端用编程的方法解决。数据库端用SQL语句实现累加需求,数据表须要有一个自增ID列,但是系统开销会比较大。下面是示范语句供参考:
-- 利用自增id列实现累加SQL语句
select t.*,
(select sum(num) from test where id=t.id)
as AcmNum from test t;
源表数据如图
累加运行效果如图
换其他数据库一个 sum() over (partition by ... )就解决了..
mysql比较麻烦, 可以试下
select a.Daytime,sum(new_Role)
from (select distinct DATE_FORMAT(createtime,'%Y-%m-%d') as Daytime)
from `actors` WHERE ( (`createtime` = '2019-02-01 00:00:00') AND (`createtime` = '2019-02-11 24:00:00') )
) a
left join (select * from `actors`
WHERE ( (`createtime` = '2019-02-01 00:00:00') AND (`createtime` = '2019-02-11 24:00:00') )
)b
on a.Daytime=b.createtime
group by a.Daytime
order by 1
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流