MySQL 随机查询数据与随机更新数据实现代码
MySQL随机查询数据
以前在群里讨论过这个问题,比较的有意思.MySQLl的语法真好玩.他们原来都想用PHP的实现随机,但取出多条好像要进行两次以上查询.翻了手册,找到了下面这个语句,可以完成任务了。
代码如下:
SELECT * FROM table_name ORDER BY rand() LIMIT 5;
MySQL的rand()函数在手册里是这么说的:
RAND() RAND(N)
返回在范围0到1.0内的随机浮点值。如果一个整数参数N被指定,它被用作种子值。
关于MySQL的rand()函数的效率问题,大家可以参考《MySQLL Order By Rand()效率》:http://www.phpq.net/MySQLl/MySQLl-order-by-rand.html
实际效果
代码如下:
MySQLl> select RAND();
-> 0.5925
MySQLl> select RAND(20);
-> 0.1811
MySQLl> select RAND(20);
-> 0.1811
MySQLl> select RAND();
-> 0.2079
MySQLl> select RAND();
-> 0.7888
MySQL随机更新数据
如何写一个语句能一下更新几百条MySQLL数据!
需要测试MySQL数据库,里面有一个上万条数据的数据库,如何写一个PHP文件一下每次更新几百条信息,我都是写一个循环一次更新一条信息,这样我知道用WHILE写就可以了,要是一次更新好比100条数据改如何写呢?
正确答案是:
代码如下:
UPDATE cdb_posts SET views = rand();
气死在insert 命令中,value()里面用rand(),注意字段宽度是否够一直以为MySQL随机查询几条数据,就用
代码如下:
SELECT * FROM `table` ORDER BY RAND() LIMIT 5
就可以了,以上的相关内容就是对MySQLL随机查询数据、MySQL随机更新数据。的介绍,望你能有所收获。
相关推荐
-
MySQL随机查询记录的效率测试分析
以下就是文章的主要内容. 1.SELECT * FROM `table` ORDER BY RAND() LIMIT 5 就可以了. 但是真正测试一下才发现这样效率非常低.一个15万余条的库,查询5条数据,居然要8秒以上 查看官方手册,也说rand()放在ORDER BY 子句中会被执行多次,自然效率及很低. You cannot use a column with RAND() values in an ORDER BY clause, because ORDER BY would evalu
-
SQL 随机查询 包括(sqlserver,mysql,access等)
SQL Server: Sql代码 复制代码 代码如下: Select TOP N * From TABLE Order By NewID() NewID()函数将创建一个 uniqueidentifier 类型的唯一值.上面的语句实现效果是从Table中随机读取N条记录. Access: Sql代码 复制代码 代码如下: Select TOP N * From TABLE Order By Rnd(ID) Rnd(ID) 其中的ID是自动编号字段,可以利用其他任何数值来完成,比如用姓名字段(U
-
mysql实现随机查询经验谈
一.随机查询一条数据 方法一:SELECT * FROM `table` ORDER BY RAND() limit 1 评价:不建议使用,效率非常低,官方文档中进行说明:Order By和RAND()连用,会多次扫描表,导致速度变慢. 方法二:SELECT * FROM `table` WHERE id >= (SELECT floor(RAND() * (SELECT MAX(id) FROM `table`))) ORDER BY id LIMIT 1; 解释:SELECT MA
-
mysql随机查询若干条数据的方法
在mysql中查询5条不重复的数据,使用以下: 复制代码 代码如下: SELECT * FROM `table` ORDER BY RAND() LIMIT 5 就可以了.但是真正测试一下才发现这样效率非常低.一个15万余条的库,查询5条数据,居然要8秒以上搜索Google,网上基本上都是查询max(id) * rand()来随机获取数据. 复制代码 代码如下: SELECT * FROM `table` AS t1 JOIN (SELECT ROUND(RAND() * (SELECT MAX
-
order by newid() 各种数据库随机查询的方法
SQL Server: 复制代码 代码如下: Select TOP N * From TABLE Order By NewID() view plaincopy to clipboardprint?Select TOP N * From TABLE Order By NewID() Select TOP N * From TABLE Order By NewID() NewID()函数将创建一个 uniqueidentifier 类型的唯一值.上面的语句实现效果是从Table中随机读取N条记
-
用SQL语句实现随机查询数据并不显示错误数据的方法
问题:上级单位要来检查数据,我的服务器的数据库是SQL server 2000,上级单位要求我用SQL语句在服务器端随机查询50条数据出来.可是我的服务器里有些错误数据不希望他们看到,能不能有什么办法不让他们看到. SQL语句: select top 50 x from a_1 where c=xxxx 语句就是要求这样写,然后他们来运行,怎么办,有什么办法可以在sql server上设置,然后使得这50条数据只在我找出的数据(比如正确的数据400)里随机查询出.尽量不要改动SQL语句. Pea
-
mysql实现查询最接近的记录数据示例
本文实例讲述了mysql实现查询最接近的记录数据.分享给大家供大家参考,具体如下: 查询场景:现在的需求是查询年龄最接近20岁的用户,获取前5个 我现在的数据库记录用户年龄的字段记录格式是"1995-05-20",字段名称birthday 解决思路: 1.首先查询时转换成用户年龄 日期格式转年龄的方法: (1)当前年份 - 日期格式中的年份 date_format(now(), '%Y') - from_unixtime(unix_timestamp(birthday), '%Y')
-
Mysql将查询结果集转换为JSON数据的实例代码
Mysql将查询结果集转换为JSON数据 前言学生表学生成绩表查询单个学生各科成绩(转换为对象JSON串并用逗号拼接)将单个学生各科成绩转换为数组JSON串将数组串作为value并设置key两张表联合查询(最终SQL,每个学生各科成绩)最终结果 前言 我们经常会有这样一种需求,一对关联关系表,一对多的关系,使用一条sql语句查询两张表的所有记录,例:一张学生表,一张学生各科成绩表,我们想要用一条SQL查询出每个学生各科成绩: 学生表 CREATE TABLE IF NOT EXISTS `stu
-
php批量添加数据与批量更新数据的实现方法
本文实例讲述了php批量添加数据与批量更新数据的实现方法.分享给大家供大家参考.具体分析如下: php如果要批量保存数据我们只要使用sql的insert into语句就可能实现数据批量保存了,如果是更新数据使用update set就可以完成更新了,操作方法都非常的简单,下面整理两个例子. 批量数据录入 设计方法:同时提交多条表单记录,为每一条记录设置相同的文本域名称,然后在表单处理页中,通过for循环来读取提取表单提交的数据,最后以数据的形式将数据逐条添加到数据库中. 其中,应用一个count(
-
mysql中查询字段为null的数据navicat问题
目录 mysql查询字段为null的数据navicat mysql中字段为空,null值遇到坑了 解决办法 总结 mysql查询字段为null的数据navicat 查询数据为null的数据varchar字段 默认为(null)所以查询的语句是 select * from cases where name is null 查询字段为null select * frim cases where name is not null 查询字段不为null mysql中字段为空,null值遇到
-
mysql多表join时候update更新数据的方法
sql语句: 复制代码 代码如下: update item i,resource_library r,resource_review_link l set i.name=CONCAT('Review:',r.resource_name) where i.item_id=l.instance_id and l.level='item' and r.resource_id=l.resource_id and i.name='' JOIN UPDATE & JOIN DELETE 复制代码 代码如下:
-
数据库查询排序使用随机排序结果示例(Oracle/MySQL/MS SQL Server)
Oracle查询结果集,随机排序 复制代码 代码如下: select * from table1 order by dbms_random.value(); MySQL随机查询出一条记录: 复制代码 代码如下: -- 下面的查询语句效率高,不要使用 SELECT * FROM table1 ORDER BY rand() LIMIT 1 来查询 SELECT * FROM table1 WHERE id=(SELECT id FROM table1 ORDER BY rand() LIMIT 1
-
你真的了解触发器么 数据实时同步更新问题剖析
当我们想更新一张动态表的时候(即:表中的数据不断的添加),也许我们会用数据库代理,通过写作业,然后让他定时查询动态表中最新添加的数据,然后更新数据.这样时能实现更新数据的要求,但是数据却不能实时同步更新. 这个时候,触发器就是我们想要的神器了.我们可以在那张动态表上新建触发器.触发器的实质就是个存储过程,只不过他调用的时间是根据所建的动态表发生该表而执行(即:Insert新数据,Update或者Delete数据). 具体怎么使用触发器,今天我这里就不介绍了,园子里资料多的很.那么我今天要介绍的是
-
MySQL 随机查询数据与随机更新数据实现代码
MySQL随机查询数据 以前在群里讨论过这个问题,比较的有意思.MySQLl的语法真好玩.他们原来都想用PHP的实现随机,但取出多条好像要进行两次以上查询.翻了手册,找到了下面这个语句,可以完成任务了. 复制代码 代码如下: SELECT * FROM table_name ORDER BY rand() LIMIT 5; MySQL的rand()函数在手册里是这么说的: RAND() RAND(N) 返回在范围0到1.0内的随机浮点值.如果一个整数参数N被指定,它被用作种子值. 关于MySQL
-
MySql分组后随机获取每组一条数据的操作
思路:先随机排序然后再分组就好了. 1.创建表: CREATE TABLE `xdx_test` ( `id` int(11) NOT NULL, `name` varchar(255) DEFAULT NULL, `class` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; 2.插入数据 INSERT INTO xdx_test VALUES (1, '张三-1','
随机推荐
- Redis实现分布式锁的几种方法总结
- 经典赞美30句
- 启动tomcat时 错误: 代理抛出异常 : java.rmi.server.ExportException: Port already in use: 1099的解决办法
- Mybatis集成Spring的实例代码_动力节点Java 学院整理
- 简要分析Java多进程编程的并发控制
- PHP的变量类型和作用域详解
- 分享MYSQL插入数据时忽略重复数据的方法
- 纯css实现窗户玻璃雨滴逼真效果
- 数据库表分割技术浅析(水平分割/垂直分割/库表散列)
- java用户管理注册功能 含前后台代码
- Android多线程处理机制中的Handler使用介绍
- 基于jQuery实现仿51job城市选择功能实例代码
- JavaScript 批量创建数组的方法
- Javascript通过overflow控制列表闭合与展开的方法
- Google西联汇款取款详细流程 大家这个月就可以了啊
- msnet.sys、jet300.dll的简单分析与清除办法
- Linux下乱码问题的解决方案小结
- Centos7更改网卡名称Eth0的方法
- Java 在 Word 文档中使用新文本替换指定文本的方法
- Vue 父子组件数据传递的四种方式( inheritAttrs + $attrs + $listeners)