mysql - SELECT * FROM db.table TABLESAMPLE(10%)

标签 mysql

我知道有人问过这个问题,但没有人解决我的问题,我正在本地主机上使用 phpmyadmin 服务器版本:10.1.21-MariaDB,我想使用查询从大表中选择 n 个随机行.... .

SELECT * FROM db.table TABLESAMPLE(10 PERCENT) 

但我收到一条错误声明...... “#1064 - 您的 SQL 语法有错误;请查看与您的 MariaDB 服务器版本对应的手册,了解在第 1 行的‘(10 PERCENT) LIMIT 0, 25’附近使用的正确语法” 请这已经让我着迷了 3 天,感谢您的帮助

最佳答案

我认为 MariaDB/MySQL 不支持 tablesample

您可以使用 rand() 获得 10% 的样本:

select t.*
from db.table t
where rand() < 0.1;

这不是完全一样,因为行数可能不完全是 10%。但是,对于大多数用途,它应该足够接近。

关于mysql - SELECT * FROM db.table TABLESAMPLE(10%),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49610521/

相关文章:

php - 如何对齐 HTML 单元格值

mysql - 出现错误代码 1064,可能是语法错误

mysql - 通过 Node JS 连接到 AWS MySQL 数据库

MySQL COUNT 值作为列

mysql - 在 Laravel 查询中选择行

sql - 如何连接两个数据库表并交叉引用另一个

mysql - 如果 FK 表具有复合主键(FK 不是复合的一部分),则外键作为主键不起作用

javascript - 当 while 循环和行变量满足条件时,如何循环它们?

mysql:查找具有重复值加条件的行

php - 尽管查询在函数之外工作,但 mySQLi 查询生成空值