首页 > 数据库 >sql随机抽取记录

sql随机抽取记录

时间:2023-08-28 14:34:11浏览次数:39  
标签:抽取 sql random NewID 随机 SQL table select


我们经常想在一个数据表中随机地选取出数据来,比如随机生成考试试卷等。
利用 SQL Server 的 NewID() 方法就可以很轻松地达到这个目的。

NewID() 方法返回一个 GUID,如:EE95A489-B721-4E8A-8171-3CA8CB6AD9E4
在 select 表的时候,再增加一列为 NewID() 就可以了。
SQL 语句:select *, NewID() from table
这样每条记录后就会有一个随机的 GUID 值,我们再按这个 GUID 排一下序就可以达到乱序的效果。
SQL 语句:select *, NewID() as random from table order by random

我们要想随机取出 10 条数据,只要加上 TOP 10 就行了:
SQL 语句:select top 10 *, NewID() as random from table order by random

筛选唯一记录
SELECT * FROM tablename ORDER BY NEWID()

这个方法只适用于 SQL Server。

 

 

SELECT top 4 * FROM 表 ORDER BY Rnd(id)

这句适用于ACCESS的,大家能参考

 

select * from table_name order by rand() [limit num];
mysql的随机查询语句。

标签:抽取,sql,random,NewID,随机,SQL,table,select
From: https://blog.51cto.com/u_16237557/7263474

相关文章

  • dapper mysql 批量新增修改
    dapper是C#程序员比较喜欢用的轻量级ORM,简单易学,只是没有批量新增以及修改(收费版有),写了如下扩展///<summary>///dapperMySQL批量新增修改扩展///</summary>publicstaticclassDapperExtensions{///<summary>///批量插入......
  • java.sql.SQLException: 无法从套接字读取更多的数据
    本来订单的生成没有问题,但不知什么原因,报了一个这样的异常,致使订单不能生成[08-11-198:07:51:344CST]00000037JDBCExceptionEcouldnotinsert:[gmit.jzt.buying.databean.EOrderDO#122594][08-11-198:07:51:344CST]00000037JDBCExceptionE......
  • 10条SQL优化技巧
    一、一些常见的SQL实践(1)负向条件查询不能使用索引select*fromorderwherestatus!=0andstauts!=1notin/notexists都不是好习惯可以优化为in查询:select*fromorderwherestatusin(2,3)(2)前导模糊查询不能使用索引select*fromorderwheredesclike‘%XX’而非前导模糊......
  • sql根据子表的条数排序
    您可以使用子查询和聚合函数来根据子表的条数排序,以下是一个示例:假设有两张表:orders和order_items,其中orders表包含订单信息,而order_items表包含每个订单的订单项信息。首先,您可以编写一个子查询来计算每个订单的订单项数量,并将其命名为order_item_count:SELECTorder_id,......
  • sqlite导入导出
    sqlite3test.db.dump>filename--导出sqlite3test.db<filename--导入https://blog.csdn.net/gangtienaner/article/details/119575172详情目录一、基本语法1.常用指令2.数据类型3.创建数据库4.导入/导出数据库​5.创建表6.查看表的详细信息7.删除表8.插入数......
  • SQL 优化 (总)
    一、SQL语句1、Select:尽量不用Select星号语句,因为Select星号会全表扫描,导致sql语句性能大大降低。使用具体的列代替星号,避免多余的列2、Where:(1) where条件避免前面加函数和操作(2)避免在where子句中使用!=或<>操作符,否则将引擎放弃索引进行全表扫描3、Like:like避免开头%......
  • 使用MySQL命令行新建用户并授予权限的方法
    MySQL命令行能否实现新建用户呢?答案无疑是肯定的。而且在使用使用MySQL命令行新建用户后,还可以为用户授予权限。首先要声明一下:一般情况下,修改MySQL密码,授权,是需要有mysql里的root权限的。注:本操作是在WIN命令提示符下,phpMyAdmin同样适用。用户:phplamp用户数据库:phplampDB1.......
  • Linux下MySql开放访问权限
    在Linux下安装完数据库后,局域网内无法访问。 设置方法:1.停止mysql,进入/etc/mysql/,编辑my.cnf,找到bind-address的配置,改为0.0.0.0,然后启动mysql2.登录mysql,进入mysql数据库,执行updateusersethost='%'wherehost='127.0.0.1'anduser='root',执行完成后再使用命令flushprivileg......
  • ubuntu上mysql的安装以及基本用法
    1.使用apt-get查找当前可用的mysql版本.apt-cachesearchmysql返回的结果集为: 2.通过结果集找到最新可用的服务端是mysql-server,安装mysql-serversudoapt-getinstallmysql-server 按提示安装即可(中间会提示设置root口令)。3.测试是否安装正确#登录mysql-uroot-p出现以下......
  • Django信号、自定制命令、开启事务、执行原生SQL
    目录Django信号内置信号自定义信号执行原生SQL自定制命令步骤Django信号django自带一套信号机制来帮助我们在框架的不同位置之间传递信息。简单的说,当某一事件发生时,信号系统可以允许一个或多个发送者(senders)将通知或信号(siganls)发送给一组接收者(receivers)。有内置信号(......