可爱熊个人博客

Posts Tagged ‘mysql’

mysql 更新随机数的办法

例子:

update dede_arcgame set gclick=FLOOR(RAND()*50) where gclick=’1′

1.mysql产生随机数并与字符串想加组成新的字符串:

update `list`  set email=concat(RAND(50),`@126.com`) WHERE id>100;

2.mysql高效随机产生相邻5条记录方法::

SELECT *
FROM `list` AS tt1 JOIN (SELECT ROUND(RAND() * ((SELECT MAX(id) FROM `list`)-(SELECT MIN(id) FROM `list`))+(SELECT MIN(id) FROM `list`)) AS id) AS tt2
WHERE tt1.id >= tt2.id
ORDER BY tt1.id LIMIT 5;

RAND() RAND(N)
返回一个随机浮点值 v ,范围在 0 到1 之间 (即, 其范围为 0 ≤ v ≤ 1.0)。若已指定一个整数参数 N ,则它被用作种子值,用来产生重复序列, 返回-5至5的随机整数.在PHP中,则非常简单直接用.

<?php
print rand(-5,5);
?>

在mysql中,rand函数只能有一个参数.利用MySQL的ROUND()加上RAND()函数实现:

//0.5-rand()可以得到-0.5 至 +0.5的随机数
//(0.5-rand())*2可以得到-1 至 +1的随机数
//(0.5-rand())*2*5可以得到-5 至 +5的随机数
//ROUND((0.5-RAND())*2*5)可以得到-5 至 +5的随机整数

优点: 当随机数范围很广的时候,只需要更改*5当中的5即可,非常方便.
缺点: 随机数只能是连续的,不可以指定某部分数据.

Tags: ,

MySql取整函数

1.ceil () /ceiling() 向上取整

ex: ceil(1.2) = 2

2.floor () 向下取整

ex: floor(1.2) = 1

3.round() 四舍五入

Tags: ,

MySQL四舍五入的实现

文章主要描述的是MySQL四舍五入的实际应用,以及在其实际操作中的值得我们大家注意的事项与其实际应用代码的描述,以下就是文章的主要内容的详细描述,望大家在浏览之后会对其有更深的了解。

	
  • FLOOR(X)  
  • 返回不大于X的最大整数值。

    	
  • MySQL> select FLOOR(1.23);  
  • -> 1  
  • MySQL> select FLOOR(-1.23);  
  • -> -2 
  • 注意返回值被变换为一个BIGINT!

    	
  • CEILING(X)  
  • 返回不小于X的最小整数值。

    	
  • MySQL> select CEILING(1.23);  
  • -> 2  
  • MySQL> select CEILING(-1.23);  
  • -> -1 
  • 注意返回值被变换为一个BIGINT!

    	
  • ROUND(X)  
  • 返回参数X的MySQL四舍五入的一个整数。

    	
  • MySQL> select ROUND(-1.23);  
  • -> -1  
  • MySQL> select ROUND(-1.58);  
  • -> -2  
  • MySQL> select ROUND(1.58);  
  • -> 2 
  • 注意返回值被变换为一个BIGINT!

    	
  • ROUND(X,D)  
  • 返回参数X的四舍五入的有D为小数的一个数字。如果D为0,结果将没有小数点或小数部分。

    	
  • MySQL> select ROUND(1.298, 1);  
  • -> 1.3  
  • MySQL> select ROUND(1.298, 0);  
  • -> 1 
  • 注意返回值被变换为一个BIGINT!

    Tags:

    mysql 各种级联查询后更新(update select)

    mysql  各种级联查询后更新(update select).

    CREATE TABLE `tb1` (
      `id` int(11) NOT NULL,
      `A` varchar(100) default NULL,
      `B` varchar(100) default NULL,
      `C` varchar(20) default NULL,
      PRIMARY KEY  (`id`),
      KEY `id` (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;

    CREATE TABLE `tb2` (
      `id` int(11) NOT NULL,
      `A` varchar(100) default NULL,
      `B` varchar(100) default NULL,
      PRIMARY KEY  (`id`),
      KEY `id` (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1; Read More…

    Tags:

    mysql批量更新数据

    以下使用于mysql 

    update tepoi,pinf set tepoi.x=pinf.fx,tepoi.y=pinf.fy
     where tepoi.pid=pinf.dmgis_id and tepoi.pid>10000;

     假设有表a,b

    其结构

    a(id,email,name)   b(id,email)

    update   a inner join   b on a.id=b.id set a.email=’aa@com’,b.email=’bb.com’

    update tableA inner join tableB on tableA.FieldA=tableB.FieldB

    set

    tableA.字段=值,

    tableB.字段=值

    多表更新
    在 MySQL 3.23 中,你可以使用 LIMIT # 来确保只有给定的记录行数目被更改。 Read More…

    Tags:

    MySQL排除重复记录

    如果要从table中取出name字段,并排除重复

    SELECT DISTINCT `name` FROM `table`;

    如果要从table中取出不重复的记录,应该是这样

    SELECT * FROM `table` GROUP BY `name`;

    Tags:

    Mysql多表查询,多表插入和多表更新

    多表查询:
    CREATE TABLE IF NOT EXISTS contact(
    contact_id int(11) NOT NULL AUTO_INCREMENT,
    user_name varchar(255),
    nom varchar(255),
    prenom varchar(255),
    mail varchar(64),
    passcode char(64),
    PRIMARY KEY(contact_id)
    );
    CREATE TABLE IF NOT EXISTS droit(
    droit_id int( 11 ) NOT NULL AUTO_INCREMENT ,
    droit varchar(255),
    PRIMARY KEY(droit_id)
    );

    Read More…

    Tags: , , ,

    mysql UNIX时间戳与日期的相互转换

    UNIX时间戳转换为日期用函数: FROM_UNIXTIME()

    select FROM_UNIXTIME(1156219870);

    日期转换为UNIX时间戳用函数: UNIX_TIMESTAMP()

    Select UNIX_TIMESTAMP(’2006-11-04 12:23:00′);

    例:mysql查询当天的记录数:

    $sql=”select * from message Where DATE_FORMAT(FROM_UNIXTIME(chattime),’%Y-%m-%d’) = DATE_FORMAT(NOW(),’%Y-%m-%d’) order by id desc”;

    当然大家也可以选择在PHP中进行转换

    UNIX时间戳转换为日期用函数: date()

    date(‘Y-m-d H:i:s’, 1156219870);

    日期转换为UNIX时间戳用函数:strtotime()

    strtotime(‘2010-03-24 08:15:42’);

    Tags: , , ,

    MySQL 的备份(mysqldump,source)

    1、mysqldump

    1.1 备份

    mysqldump 是采用SQL级别的备份机制,它将数据表导成 SQL 脚本文件,在不同的 MySQL 版本之间升级时相对比较合适,这也是最常用的备份方法。
    现在来讲一下 mysqldump 的一些主要参数:

    Read More…

    Tags: , , ,

    使用MySQL数据库的23个注意事项

    使用MySQL,安全问题不能不注意。以下是MySQL提示的23个注意事项:

    1。如果客户端和服务器端的连接需要跨越并通过不可信任的网络,那么就需要使用SSH隧道来加密该连接的通信。

    2。用set password语句来修改用户的密码,三个步骤,先“mysql -u root”登陆数据库系统,然后“mysql> update mysql.user set password=password(‘newpwd’)”,最后执行“flush privileges”就可以了。

    3。需要提防的攻击有,防偷听、篡改、回放、拒绝服务等,不涉及可用性和容错方面。对所有的连接、查询、其他操作使用基于ACL即访问控制列表的安全措施来完成。也有一些对SSL连接的支持。

    4。除了root用户外的其他任何用户不允许访问mysql主数据库中的user表;

    Read More…

    Tags: ,