计算并获取 mysqli/php 中的所有记录
Posted
技术标签:
【中文标题】计算并获取 mysqli/php 中的所有记录【英文标题】:count and get all records in 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'
获取所有记录,然后只获取匹配的行数?
【参考方案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 的那样将聚合函数与列 (*) 混合。以上是关于计算并获取 mysqli/php 中的所有记录的主要内容,如果未能解决你的问题,请参考以下文章
MySQLi PHP:使用 MySQLi 检查 SQL INSERT 查询是不是完全成功
ExtJs分组中的clearfilter后如何获取特定组的所有记录
如何一次获取 100 条记录,直到使用 Spring JPA 的 oracle 中的所有记录?