mysql怎么随机取50条数据

select * from tableName order by rand() limit 50;
mysql怎么随机取50条数据
USE [2881]GO/****** Object: StoredProcedure [dbo].[sp_rowpages] Script Date: 06/12/2017 09:55:02 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGO-- =============================================-- Description: <>-- Status: <> -- =============================================ALTER PROCEDURE [dbo].[sp_rowpages] @TableName NVARCHAR(1024), /* 数据表名 */ @SQLFields NVARCHAR(1024) = NULL, /* 显示字段(支持多字段,以逗号分隔) */ @SQLWhere NVARCHAR(1024) = NULL, /* 查询条件 */ @OrderFields NVARCHAR(255) = NULL, /* 显示排序字段(支持排序字,多字段以逗号分隔) */ @PageSize INT = 10, /* 每页的大小(记录数) */ @PageIndex INT = 1, /* 页码 */ @RecordCount INT = NULL OUTPUT, /* 总记录数 */ @PageCount INT = NULL OUTPUT, /* 总页数 */ @SQLFields1 NVARCHAR(255) = NULL /* 特殊显示字符(函数计算),分页后包含,优化性能 */ASBEGIN /* 分页数据查询(适用于SQL2005) */ /* 返回值: -1 参数错误或执行出错,0-无数据,>0 页记录数量 */ SET NOCOUNT ON SET @TableName = RTRIM(@TableName) IF (@TableName = '') RETURN -1 /* 表名不能为空 */ SET @SQLFields = RTRIM(ISNULL(@SQLFields, N'')) IF (@SQLFields = N'') SET @SQLFields = N'*' SET @SQLFields1 = RTRIM(ISNULL(@SQLFields1, N'')) IF (@SQLFields1 <> N'') SET @SQLFields1 = N', ' + @SQLFields1 SET @SQLWhere = RTRIM(ISNULL(@SQLWhere, N'')) SET @OrderFields = RTRIM(ISNULL(@OrderFields, N'')) IF (@OrderFields = N'') RETURN -1 /* 主键字段和排序字段不能同时为空 */ DECLARE @SQL NVARCHAR(2048) DECLARE @StartSQL DATETIME /* 查询开始时间 */ /* 计算总页数 */ SET @SQL = N'' IF (@PageCount IS NULL) BEGIN SET @StartSQL = GETDATE() SET @RecordCount = 0 SET @PageCount = 0 SET @SQL = N'SELECT @RecordCount = COUNT(*) FROM ' + @TableName IF NOT (@SQLWhere = N'') SET @SQL = @SQL + N' WHERE '+ @SQLWhere EXEC sp_executesql @SQL, N'@RecordCount int OUTPUT', @RecordCount OUTPUT IF NOT (@@ERROR = 0) RETURN -1 /* 取得记录数出错 */ SET @PageCount = (@RecordCount + @PageSize - 1) / @PageSize PRINT 'Count Time: '+LTRIM(STR(DATEDIFF(ms,@StartSQL, GETDATE()))) + N' (ms).' IF (@RecordCount = 0) RETURN 0 /* 无数据,返回0 */ END /* 处理页数范围 */ IF @PageCount <= 0 RETURN 0 /* 无数据,返回0 */ IF ISNULL(@PageSize, 0) < 1 SET @PageSize = 20 IF ISNULL(@PageIndex, 0) < 1 SET @PageIndex = 1 IF (@PageIndex > @PageCount) SET @PageIndex = @PageCount /* 分页数据查询 */ SET @SQL = N''-- IF (@PageIndex = 1)-- BEGIN-- /* 第1页的查询 */-- SET @StartSQL = GETDATE()-- SET @SQL = N'SELECT TOP (' + LTRIM(STR(@PageSize)) + ') '+ @SQLFields -- + N' FROM ' + @TableName-- IF NOT (@SQLWhere = N'')-- SET @SQL = @SQL + N' WHERE '+ @SQLWhere-- SET @SQL = @SQL + N' ORDER BY '+ @OrderFields-- --PRINT N'查询语句长度: ' + LTRIM(STR(LEN(@SQL)))-- PRINT CASE WHEN (@SQL IS NULL) THEN 'SQL IS NULL!' ELSE @SQL END-- EXEC sp_executesql @SQL, N'@PageSize int', @PageSize-- END-- ELSE BEGIN /* 第N页的查询 */ SET @StartSQL = GETDATE() /* 处理分页起止点 */ DECLARE @PageStart INT, @PageEnd INT SET @PageStart = (@PageIndex -1) * @PageSize + 1 SET @PageEnd = @PageStart + @PageSize - 1 /* 合成分页查询语句 */ SET @SQL = N'SELECT *' + @SQLFields1 + N' FROM (SELECT ROW_NUMBER() OVER(ORDER BY ' + @OrderFields + N') AS RowId,' + @SQLFields + N' FROM ' + @TableName IF NOT (@SQLWhere = N'') SET @SQL = @SQL + N' WHERE ' + @SQLWhere SET @SQL = @SQL + N') AS tbl WHERE RowId BETWEEN ' + LTRIM(CONVERT(VARCHAR(50), @PageStart)) + N' AND ' + LTRIM(CONVERT(VARCHAR(50), @PageEnd)) + N' ORDER BY RowId' --PRINT N'查询语句长度: ' + LTRIM(STR(LEN(@SQL))) PRINT CASE WHEN (@SQL IS NULL) THEN 'SQL IS NULL!' ELSE @SQL END EXEC sp_executesql @SQL, N'@PageSize int, @PageIndex int', @PageSize, @PageIndex END DECLARE @RETURN int, @ERROR int SELECT @RETURN = @@ROWCOUNT, @ERROR = @@ERROR IF NOT (@ERROR = 0) RETURN -1 /* 分页查询执行出错 */ PRINT N'Query Time: ' + LTRIM(STR(DATEDIFF(ms, @StartSQL, GETDATE()))) + N' (ms).' RETURN @RETURNEND2018-09-25
select * from tableName order by rand() limit 50;2018-06-30
mengvlog 阅读 6 次 更新于 2025-07-20 18:41:26 我来答关注问题0
  • select * from tableName order by rand() limit 50;

  • 在MySQL中,如果你需要随机获取几条数据,可以使用Max RAND函数实现。以下是两种有效的方法,对于几十万条数据,查询速度表现良好。首先,尝试以下SQL语句:sql SELECT * FROM `news`WHERE id >= (SELECT floor(RAND() * (SELECT MAX(id) FROM `news`))LIMIT 10;这种方法通过生成一个随机数,乘以...

  • 获取MySQL中的随机数据,可以使用ORDER BY RAND()函数。例如,以下SQL语句可实现:sql SELECT column FROM table ORDER BY RAND()LIMIT 1;这将返回table表中的随机一行数据。另一种方法是利用子查询。具体步骤如下:sql SELECT column FROM table WHERE id >= (SELECT FLOOR( MAX(id) * RAND()) ...

  • 其实,从数据库随机获取数据,很简单,只须用到一个rand()函数;select * from table_name order by rand() limit 0,5;下面是一个小实例:从文章表中随机获取5条数据。dblink=mysql_connect("localhost","root","123456");mysql_query("set names utf8");mysql_select_db("aixuexi");sql="sel...

  • 可以使用MySQL中的`RAND`函数来查询随机数据。具体查询方法取决于你想查询的数据表及需求,以下是一个基本示例:假设你有一个名为`your_table`的数据表,并且想要随机选择其中的5条数据,可以使用如下SQL语句:sql SELECT * FROM your_table ORDER BY RAND LIMIT 5;这条SQL语句会返回表中的随机5条...

檬味博客在线解答立即免费咨询

mySQL相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部