【问题标题】:count and get all records in mysqli/php计算并获取 mysqli/php 中的所有记录
【发布时间】:2015-11-24 07:41:55
【问题描述】:

我尝试计数并获取name = "john"的所有记录

我试试这个:

SELECT * COUNT(id) count FROM profile WHERE name = 'john'

但是我收到了这个错误:

您的 SQL 语法有错误;检查手册 对应于您的 MySQL 服务器版本,以便使用正确的语法 在第 1 行的 'COUNT(id) count FROM profile WHERE name = 'john'' 附近

怎么了?

【问题讨论】:

  • 你真的需要每一行的计数吗?您是否考虑过使用简单的SELECT * FROM profile WHERE name = 'john' 获取所有记录,然后只获取匹配的行数?

标签: php mysql sql mysqli


【解决方案1】:

如果您想获取所有记录以及总计数,那么您可以使用子查询:

SELECT *, (SELECT COUNT(id) 
           FROM profile 
           WHERE name = 'john') as count
FROM profile 
WHERE name = 'john'

此查询将返回 profile 的所有记录,其中包含 name = 'john'。对于返回的每条记录,也会选择总记录数(具有name = 'john')。

【讨论】:

    【解决方案2】:

    对于所有有计数的记录,使用内部查询:-

    SELECT *, (SELECT COUNT(id) 
    FROM profile 
    WHERE name = 'john') as count
    FROM profile 
    WHERE name = 'john'
    

    【讨论】:

    • 第一次查询无效。你不能像没有 GROUP BY 的那样将聚合函数与列 (*) 混合。
    猜你喜欢
    • 1970-01-01
    • 2020-10-19
    • 1970-01-01
    • 1970-01-01
    • 2018-09-26
    • 1970-01-01
    • 2019-07-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多