当前位置: 主页 > MYSQL >

渐渐忘却的mysql

时间:2012-01-08  ¦  整理:站长每日一帖  ¦  点击:次  ¦  我要收藏
人老了,就容易忘东西,喜欢回忆过往,找回曾经。好久没写mysql,居然很简单的语句都忘了,查完资料想半天才写出很简单的sql语句,看来是该好好复习一下mysql了。接下来说说昨天晚
   人老了,就容易忘东西,喜欢回忆过往,找回曾经。好久没写mysql,居然很简单的语句都忘了,查完资料想半天才写出很简单的sql语句,看来是该好好复习一下mysql了。接下来说说昨天晚上发生的糗事。
  昨晚群里有人问如何写一个200到500的随机数,本来想很简单的,就是个rand函数。我还想应该马上写出来了,结果想了好久不知道怎么写,百度无果,只能继续想。我是这样想的,rand是返回0到1之间的数,乘以500就是返回0到500,怎么返回200到500呢,我想了加减乘除都没想出来。后来我看了问问题的那人写的语句,他是这样写的,floor( 200 + rand( ) *500 )很明显这是返回200到700,我仔细一看,返回200到500不就是把这里的500改为300就好了,一试果然是问题解决。我再用round函数试了试结果也是对的,最后那个人采纳了round这个方案。
 然后我就查资料比较floor、ceil和round的区别。Floor(X)是返回不大于 X 的最大整数值,比如mysql> SELECT FLOOR(1.23);
        -> 1
mysql> SELECT FLOOR(-1.23);
  • -2
Ceiling(X) 是返回不小于 X 的最小整数:
mysql> SELECT CEILING(1.23);
        -> 2
mysql> SELECT CEILING(-1.23);
  • -1
ROUND(X) ,ROUND(X,D) 将参数 X 四舍五入到最近的整数,然后返回。两个参数的形式是将一个数字四舍五入到 D 个小数后返回。
mysql> SELECT ROUND(-1.23);
        -> -1
mysql> SELECT ROUND(-1.58);
        -> -2
mysql> SELECT ROUND(1.58);
        -> 2
mysql> SELECT ROUND(1.298, 1);
        -> 1.3
mysql> SELECT ROUND(1.298, 0);
        -> 1
通过这个比较上面那个查询随机200到500还是用floor比较合适,因为floor能保证产生的数一直在这个区间,也就是200<X<500,而round的区间是200<=X<=500,差距不是很多,看你要不要那两个端点,根据实际情况运用。好啦,今天mysql就更到这儿,请大家以后有什么问题,尽管提,我会尽量回复,谢谢大家支持。
小技巧:若要在iRj 这个范围得到一个随机整数R ,需要用到表达式 FLOOR(i + RAND() * (ji + 1))。例如, 若要在7 到 12 的范围(包括7和12)内得到一个随机整数, 可使用以下语句:SELECT FLOOR(7 + (RAND() * 6));
(如果您觉得本站不错,请告诉身边的朋友,或转载到论坛、百度知道、贴吧等,记得带网址哟!)

    阅读过 渐渐忘却的mysql 的网友还阅读了:

    

    评论or提问点击发表评论或提问!

    如果您有问题,请先查找解决办法,无法解决后请在此提问并将问题描述清楚!
    • 昵称 (必填)
    • 电子邮箱 (我们会为您保密) (必填)
    • 网站URL
    • 点击我更换图片
    

    最新评论内容

    
    回到顶部