我有一个充满图像的数据库,我想吐出并显示两个随机图像.这段代码做得很好,但我不相信这是最好的方法,特别是如果数据库最终会有很多行.我已经研究过使用

MySQL的rand()函数并将其限制为两个结果,但是从我读过的内容来看,rand()在大型数据库上相对较慢.另一个问题是在双数据库查询中.是否有更好的方法可以通过img_id选择两个随机行?

img_id是一个auto_incremented行,但不能假设是连续的.

//get all image ids

$query = $conn->prepare('SELECT img_id FROM images');

$query->execute();

$result = $query->fetchAll();

//create an array in which to put all the ids

$list_imgs = array();

//put the ids into the array to search over

for ($x=0; $x < count($result); $x++) {

array_push($list_imgs, $result[$x]['img_id']);

}

//output two random images

for ($x=0; $x < 2; $x++) {

//create random index for search

$rand = array_rand($list_imgs);

//query to select one image

$query = $conn->prepare('SELECT title, file_loc FROM images WHERE img_id=?');

//random index value in array of img_ids

$query->execute(array($list_imgs[$rand]));

$result = $query->fetchAll();

echo 'title:' . $result[0]['file_loc'] . '';

}

任何提高查询效率的建议?

php数据库随机选择,php – 在MySQL数据库中选择两个随机行相关推荐

  1. 选择指定的MySQL数据库

    <?php/*********************************** 功能:选择指定的MySQL数据库*********************************/ ?> ...

  2. Java数据库开发与应用之MySQL数据库、JDBC操作数据库、C3P0数据库连接池,Java反射等

    MySQL数据库,JDBC接口,MyBatis框架等,掌握的数据的存放和管理. Java数据库开发基础,介绍MySQL数据库.JDBC操作数据库.C3P0数据库连接池,Java反射等内容,进行油画商城 ...

  3. mysql数据库导出最大值_4.6 MySQL数据库导入与导出攻略

    4.6 MySQL数据库导入与导出攻略 4.6.1 Linux下MySQL数据库导入与导出 1. MySQL数据库的导出命令参数 主要是通过两个mysql和mysqldump命令来执行 (1) MyS ...

  4. [Qt教程] 第22篇 数据库(二)编译MySQL数据库驱动

    [Qt教程] 第22篇 数据库(二)编译MySQL数据库驱动 楼主  发表于 2013-5-13 21:28:02 | 查看: 1616| 回复: 12 编译MyQSL数据库驱动 版权声明 该文章原创 ...

  5. php访问mysql数据库实验报告,php访问mysql数据库

    //建一个连接,造一个连接对象 $db = new MySQLi("localhost","root","123","mydb&q ...

  6. mysql数据库服务器重启_重启mysql数据库服务器

    Mysql错误代码大全 1016错误:文件无法打开,使用后台修复或者使用phpmyadmin进行修复. 1044错误:数据库用户权限不足,请联系空间商解决 1045错误:数据库服务器/数据库用户名/数 ...

  7. 从永远到永远-Navicat将MySQL数据库复制到另一个Mysql数据库

    Navicat将MySQL数据库复制到另一个Mysql数据库 1.需求 2.方案 3.问题 1.需求 云服务器快到期了,实在不想续费了.一个是再续费太贵,再一个就是性能一般.索性直接买了个32G内存笔 ...

  8. 红帽下安装mysql数据库_[原创]RedHat 安装MySQL数据库

    朋友购买了阿里云的服务器,服务器上自带有CentOS操作系统,但是开发软件需要自己安装,接下来将介绍本地RedHat Linux 5.10虚拟机上搭建Mysql数据库. 一.软件准备 (1)jdk-6 ...

  9. 如何更改mysql数据库编码格式_怎么修改MYSQL数据库的编码格式

    1.怎么修改MYSQL数据库的编码格式 在建网站时,有时需要将一个数据库里的数据导入到另一个数据库里,但往往会出现二个数据库的编码不同,造成网页乱码.解决方法就是修改数据库编码.下面介绍一下如何修改M ...

  10. 如何为服务器安装mysql数据库文件,如何为服务器安装mysql数据库

    如何为服务器安装mysql数据库 内容精选 换一换 对于mysqlpump工具,由于在并行备份场景有coredump问题,不建议您使用,推荐您使用mysqldump工具迁移.GaussDB(for M ...

最新文章

  1. 记一次订单号重复的事故,快看看你的 uuid 在并发下还正确吗?
  2. Xshell Linux常用命令及vim与权限修改等常见问题
  3. 瑞德西韦重症用药结果再曝光,上百名重症一周内好转,股价大涨19%
  4. win10 + VS2015 + EF6 + MySQL
  5. 深入Scripting Runtime Library
  6. iptables数据包、连接标记模块MARK/CONNMARK的使用(打标签)
  7. Arcgis 重装 的 license 问题
  8. 20200113每日一句
  9. 《软件工程》— 实用软件工程——习题答案
  10. 软件等于计算机程序加数据加什么,南航计算机软件数据结构上机实践报告
  11. python获取国内IP地址合集下发至网络设备
  12. 谢晶:webpower中国区正在向“多渠道智能化营销”全面转型
  13. php高校学生户籍档案管理系统
  14. request请求参数中文乱码问题
  15. 头条自媒体运营秘籍,坚持下去你就可以打败90%的人
  16. 使用Python做QQ机器人
  17. 线性子空间和仿射子空间
  18. 电子设计教程17:从共射极放大电路到射极跟随电路
  19. java获取给定日期当前周当前月当前季度的第一天和最后一天
  20. 用ffmpeg给音频加封面(亲试成功)

热门文章

  1. flanneld,flannel和cni逐步深入
  2. 【BZOJ3218】 a+b Problem
  3. 产业企业和投资机会研究 沈阳新松机器人自动化股份有限公司(300024)
  4. POJ 3168 Barn Expansion (几何+排序)
  5. Mybatis与hibernate
  6. 编译U-boot时,make[1]: *** 没有规则可以创建mkimage.o”
  7. [转]通过崩溃地址找错误行数之Delphi版
  8. 拓端tecdat|r语言有限正态混合模型EM算法的分层聚类、分类和密度估计及可视化
  9. 拓端tecdat|数据感知游客的森林公园游憩需求
  10. c++下字符串分割函数split实现