一个返回数值的 mySQL 计数查询?
Posted
技术标签:
【中文标题】一个返回数值的 mySQL 计数查询?【英文标题】:A mySQL count query to return a numeric value? 【发布时间】:2012-04-02 17:56:10 【问题描述】:我建立了一个包含数百名客户的数据库,他们都是独一无二的。但是,如果某些客户是家庭的一部分,则它们是联系在一起的。例如
我有一个关联这些客户的家庭 ID,例如A. Jones 女士的客户编号为 005,B.Jones 先生的客户编号为 017,由于他们是相关的,因此我为他们分配了家庭 ID 001。
我在网上搜索过,但似乎没有任何地方可以帮助我了解如何进行某种 mysql 计数来回显 WHERE familyID = 001 的人数。
另外,考虑到家庭ID = 001 的 mySQL 搜索条件,有什么方法可以返回两个单独的客户记录。
非常感谢,
汤姆。
编辑:意识到我会放乘客而不是顾客,我的错!此外,这些名称是出于明显的 DPA 原因而编造的 :)
【问题讨论】:
你能发布样本数据和所需的o/p吗? 乘客记录??这位乘客是从哪里来的……你说的是客户吧? 【参考方案1】:你想要COUNT()
函数
SELECT count(*) AS count FROM customers WHERE familyID="001"
您可以将*
替换为列名,这样会更快一些。
【讨论】:
【参考方案2】:$sql='SELECT count(familyID) AS count FROM customers WHERE familyID="001"';
这里可以获取familyID=001的客户数量
但是这位乘客是从哪里来的呢?与客户有什么关系?
如果是关于客户而不是乘客,那么
$sql='SELECT * FROM customers WHERE familyID="001"';
$query=mysql_query($sql);
$count=mysql_num_rows($query);
while($fetch_arr=mysql_fetch_array($query))
$familyName=$fetch_arr['name'];
echo $familyName;
您可以从 * 获取所有记录,从 $count 可以获取客户数量
【讨论】:
【参考方案3】:这种情况下可以使用count函数,可以作为。
Select count(*) form TABLE NAME where familyID = "001"
【讨论】:
【参考方案4】:如果您想要唯一记录和计数,请使用 OVER
函数:
SELECT customers.id,
customers.additional_columns,
count(1) OVER (PARTITION BY familyID) AS count
FROM customers
【讨论】:
【参考方案5】:你可以做类似的事情
$result = mysql_query("SELECT * FROM families where familyID='001'", $link);
$num_rows = mysql_num_rows($result);
source
【讨论】:
【参考方案6】:对于你的第一个问题,这样就可以了
$result = @mysql_query("SELECT * FROM tbl_name WHERE familyID = '001'");
echo mysql_num_rows($result); //This line should display the count
【讨论】:
-1 以完全无用和不需要的方式使用@
运算符。以上是关于一个返回数值的 mySQL 计数查询?的主要内容,如果未能解决你的问题,请参考以下文章