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