MYSQL 中随机读取一条数据

SELECT * FROM res AS t1 JOIN (SELECT ROUND(RAND() * ((SELECT MAX(id) FROM res) - (SELECT MIN(id) FROM res)) + (SELECT MIN(id) FROM res)) AS id) AS t2 WHERE t1.id >= t2.id ORDER BY t1.id LIMIT 1;

select * FROM `res` AS t1 JOIN(SELECT ROUND(RAND()*((SELECT MAX(id)FROM `res` )-(SELECT MIN(id) FROM `res`))+(SELECT MIN(id) FROM `res`)) AS id )AS t2
WHERE t1.id>=t2.id ORDER BY t1.id LIMIT 1;

参考:http://blog.csdn.net/testcs_dn/article/details/10149293

时间: 2024-10-07 19:22:25

MYSQL 中随机读取一条数据的相关文章

从数据库里随机读取几条数据

从数据库里随机读取几条数据 Access: select top n * from table order by rnd(id)‘id为数据库的自动编号字段 Sql Server: select top n * from table order by newid() MySQL: SELECT * FROM table order by rand() limit  20; Oracle: select * from table order by dbms_random.value()

mysql中造3千条数据(3种方法)

方法一:存储过程 1.存储过程如下: delimiter $$ DROP PROCEDURE IF EXISTS data CREATE PROCEDURE data(in i int) BEGIN WHILE i < 3000 DO INSERT INTO goods VALUES('','锤子手机',i); SET i=i+1; END WHILE; end $$ set @id=0; call proll(@id); 2.执行存储过程前将表中的数据清空 3)存储过程执行的时间需要:0.31

mysql实现随机获取几条数据的方法

sql语句有几种写法 1:SELECT * FROM tablename ORDER BY RAND() LIMIT 想要获取的数据条数: 2:SELECT *FROM `table` WHERE id >= (SELECT FLOOR( MAX(id) * RAND()) FROM `table` ) ORDER BY id LIMIT 想要获取的数据条数; 3:SELECT * FROM `table`  AS t1 JOIN (SELECT ROUND(RAND() * (SELECT M

从SQLSERVER/MYSQL数据库中随机取一条或者N条记录

原文:从SQLSERVER/MYSQL数据库中随机取一条或者N条记录 从SQLSERVER/MYSQL数据库中随机取一条或者N条记录 很多人都知道使用rand()函数但是怎麽使用可能不是每个人都知道 建立测试表 USE [sss] GO CREATE TABLE RANDTEST(ID INT DEFAULT RAND()*100,NAME NVARCHAR(200) DEFAULT 'nihao') GO CREATE INDEX IX_RANDTEST_ID ON RANDTEST(ID)

Oracle中随机抽取N条记录

一.Oracle取随机数据  1.Oracle访问数据的基本方法:  1).全表扫描(Full table Scan):执行全表扫描,Oracle读表中的所有记录,考查每一行是否满足WHERE条件.Oracle顺序的读分配给该表的每一个数据块,且每个数据块Oracle只读一次.这样全表扫描能够受益于多块读. 2).采样表扫描(sample table scan):扫描返回表中随机采样数据,这种访问方式需要在FROM语句中包含SAMPLE选项或者SAMPLE BLOCK选项.     注:从Ora

mysql中迅速插入百万条测试数据的方法

对比一下,首先是用 mysql 的存储过程弄的: 复制代码代码如下: mysql>delimiter $ mysql>SET AUTOCOMMIT = 0$$ mysql> create procedure test() begin declare i decimal (10) default 0 ; dd:loop INSERT INTO `million` (`categ_id`, `categ_fid`, `SortPath`, `address`, `p_identifier`,

Mysql中前边有0的数据,0会被舍去的问题

最近由于项目的需求,需要频繁地拉取不同数据库中的数据,拉取数据的过程中,各种问题,十分悲催,真所谓,一个疏忽,你就要被推倒重来... 在经历了无数次被推倒又站起来,然后又被推倒的艰苦奋斗历程之后,终于完成了数据的迁移.更新.同步.修复.总结一下这期间遇到的部分问题: 1.Mysql中前边有0的数据,0会被舍去的问题 如一条数据为0371xxx,存入数据库后数据变为371xxx (1)如果字段类型必须为int,可以修改字段,增加zero fill,alter table 表名称 modify 字段

MySql中把一个表的数据插入到另一个表中的实现代码--转

MySql中把一个表的数据插入到另一个表中的实现代码 司的一个项目,做报表--要关联的表结构比较多,最后决定把要用的数据集合到一张新表中,需要用到以下的sql语法......分享下: web开发中,我们经常需要将一个表的数据插入到另外一个表,有时还需要指定导入字段,设置只需要导入目标表中不存在的记录,虽然这些都可以在程序中拆分成简单sql来实现,但是用一个sql的话,会节省大量代码.下面我以mysql数据库为例分情况一一说明: 1.如果2张表的字段一致,并且希望插入全部数据,可以用这种方法: ?

Oracle的trunc和dbms_random.value随机取n条数据

今天在review项目代码的时候看到这样一个问题,有一张号码表,每次需要从这样表中随机取6个空闲的号码,也就是每次取出来的6个号码应该都会有所不同.然后我就看到了这样的SQL select   t.*     from   tel_number_tbl t    where   t.status = '空闲'      and   t.area_code = '0571'      and   t.delete_flg = '未删除'      and   rownum <= 6order by