平时做技术实践时,很多问题不是概念不会,而是细节没串起来。拿“四种数据库随机获取10条数据的做法”来说,它看着像小点,放到项目里常会牵出环境、配置、兼容性和维护成本。下面按实际采用顺序,把思路、关键写法和容易踩坑的地方讲清楚,便于大家直接对照操作。
四种数据库随机拿到10条数据的方法
SQL Server:
复制代码 代码如下所示:
SELECT TOP 10 * FROM T_USER ORDER BY NEWID()
ORACLE:
复制代码 代码如下所示:
SELECT * FROM (SELECT * FROM T_USER ORDER BY DBMS_RANDOM.RANDOM()) WHERE RONUM <= 10
MySQL:
复制代码 代码如下所示:
SELECT * FROM T_USER ORDER BY RAND() LIMIT 10
Access:
复制代码 代码如下所示:
SELECT TOP 10 * FROM T_USER ORDER BY rnd([一个自动编号字段])
结合项目来看,这条语句在 Access 中的“查询”中是能够运行同时得到随机结果的,但在 ASP.NET等后台程序代码中却无法得到预期的随机效果。
正确的写法如下所示:
以ASP.NET为例:
复制代码 代码如下所示:
Random random = new Random(System.Guid.NewGuid().GetHashCode());
int r = random.Next();
string sql = "SELECT TOP 10 * FROM T_USER ORDER BY RND(" + (-r) + "*自动编号字段)"
您可能感兴趣的文章:
- js读取被点击次数的轻松实例(从数据库中读取)
- sql server 2008数据库连接字符串大全
- 上传图片后采用数据库保存图片的示例分享
- openfiledialog读取txt写入数据库示例
- sql2000数据库清除重复数据的二种方法
- linux数据库备份并借助ftp上传脚本分享
- java采用jdbc操作数据库示例分享
- MySQL数据库命名规范及约定
- net操作access数据库示例分享
- mysql跨数据库复制表(在同一IP地址中)示例
- Drupal7连接多个数据库及常用问题解决
- Drupal读取Excel并导入数据库实例
- sqlserver备份还原数据库功能封装分享
- Drupal7中常用的数据库操作实例
- android借助jxl读excel存入sqlite3数据库
- java自定义动态链接数据库示例
- php把session写入数据库示例
- 在linux中导入sql文件的方法分享(采用命令行转移mysql数据库)
