最近做一个JAVA WEB的项目,一直不停地和MySql打交道,总结一些项目中新学到的知识或者说是用法。
pre = conn.prepareStatement("update ddd as s set s.factor=CAST(s.tid/256 as UNSIGNED) where s.datetime="+task.getDateTime());
pre = conn.prepareStatement("update ddd as s set s.factor=FLOOR(s.tid/256) where s.datetime="+task.getDateTime());
首先: CAST FLOOR ROUND 数值函数的使用
CAST 可以把计算结果处理为某种类型的数据,经我测试应该是遵循四舍五入的。 用法: CAST(s.tid/256 as DATA_TYPE)
FLOOR 这个和程序语言里面差不多的,就是把一个数向下取整。
ROUND这个刚好和FLOOR相反,但不知道MYSQL有没有CEIL这个函数了,把数向上取整。
还有一个数据库使用技巧,当在项目中某个数值只能小于一定范围时,比如一个只能占一个字节的数字,最大也就255,但是又想用这个数值作为
唯一标示,那就可以在数据表里面存放一个id除以这个最大数的商,然后这个一个字节的位置存放id和255的余数,这样就不可能超出255了。
当要找到数据库中对应的唯一记录时 余数+商*256 就能得到记录的id值了,然后根据id获取记录就易如反掌。
最近还真是超级累,加油吧少年!