php - 在SQL中根据row_count使用Limit

标签 php mysql sql phpmyadmin

我想获取 20 倍数的最大行数,比如如果我的表有 148 行,那么限制应该是 140,留下最新的 8 个条目,或者如果我的表有 170 行,那么限制将为 160。在这种情况下,查询是什么。

$conn = mysqli_connect($server_name, $mysql_username, $mysql_password, 
$db_name);
if($conn === false){
die("ERROR: Could not connect. " . mysqli_connect_error());
}

 $number= $_POST['number'];


 $sql1 = "SELECT * FROM abc_table LIMIT WHAT TO ENTER HERE  ";

最佳答案

据我所知,LIMIT后面的内容必须是整数文字。 LIMIT 甚至不会采用像 6/2 这样的东西,它会计算为整数文字。我建议只读取整个表,然后仅在 PHP 中处理您需要的行数。

$row_cnt = $result->num_rows;
$rs_size = $row_cnt - ($row_cnt % 20);

while ($rs_size > 0 && $row = mysqli_fetch_assoc($result)) {
    // process a row
    --$rs_size;
}

上面的 while 循环应该在读取可用的 20 倍数的最大数量后退出。这种方法并不太浪费,因为最多您会从 MySQL 中读取 19 行额外的行,而您最终不会使用这些行。

关于php - 在SQL中根据row_count使用Limit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53920454/

相关文章:

php - 语法错误 : COLUMN isn't in GROUP BY (SQL, Laravel)

php - Symfony2 - 找不到 "GET/"的路由

php - 没有依赖注入(inject)的方法的模拟对象

PHP MySQL 如果最新时间戳比今天早两周

mysql - 在 MySQL 表中查找地址

mysql - 根据条件检索值

php - 在 JWT Laravel 中使用授权 header 时获取 token_not_provided

mysql - Grafana使用mysql数据库做图报错1064

mysql - 从vb6将now()插入mysql

sql - PostgreSQL 触发器如何保持跨表一致性?