mysql - SQL 返回计数 + 其他列

标签 mysql sql count

我有以下 SQL 查询:"SELECT * FROM table WHERE id = '$geo_name_id' ORDER BY timestamp DESC LIMIT 10 OFFSET $offset"

这很好用,但现在我还想返回整个表 WHERE id = 'geo_name_id 中的行数(没有限制)。我试过这样的事情:

"SELECT COUNT(*) as totalExpectedItems, * FROM  story_img_vid WHERE id = '$geo_name_id' ORDER BY timestamp DESC LIMIT 10 OFFSET $offset"

但是这似乎并没有像预期的那样工作,因为它只返回一行。

最佳答案

使用子查询:

"SELECT t.*,
        (SELECT COUNT(*) FROM table
         WHERE id = '$geo_name_id') as cnt
  FROM  table t
  WHERE t.id = '$geo_name_id'
  ORDER BY t.timestamp DESC
  LIMIT 10 OFFSET $offset"

cnt 列将包含计数。

或连接到派生表:

"SELECT t.*,
        t2.cnt
 FROM table t
 JOIN(SELECT s.id,count(*) as cnt
      FROM table s GROUP BY s.id) t2
  ON(t.id = t2.id)
WHERE t.id = '$geo_name_id'
ORDER BY t.timestamp DESC
LIMIT 10 OFFSET $offset"

关于mysql - SQL 返回计数 + 其他列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38349970/

相关文章:

mysql - 在 CentOS 6.2 中将 MySQL 版本从 5.1 更新到 5.5

php artisan migrate 找不到我的数据库

php - 如果在 php 中查询成功,如何提醒用户?

mysql - MySQL select 语句中的查询计数

php - php 循环中的奇数/偶数 html 未正确交替

mysql select concat 左连接上的一对多匹配

mysql - 从 ZF2 中的 mysql 查询获取结果

c# - OraOLEDB.Oracle 提供程序未在本地计算机上注册

java - 如何为编辑页面创建 validator

SQL 选择如果计数