2012-04-02 73 views
2

我有一个数据库设置了几百个客户,他们都是独一无二的。但是,如果某些客户是家庭的一部分,则它们会连接在一起。例如。一个mySQL计数查询返回一个数值?

我有一个链接这些客户的家庭ID,例如, Mrs A. Jones是客户号码005,Mr。Jones先生是客户号码017,因为他们是相关的,所以我给他们分配了家庭ID 001.

我在网上搜索了,但没有看到哪里似乎有用为我提供任何帮助,以便我可以执行某种mySQL计数来回显WHERE familyID = 001的人数。

另外,有没有什么办法,根据mySQL搜索标准,我可以返回单独的客户记录FAMILYID的= 001

非常感谢,

汤姆。

编辑:实现我会把乘客而不是客户,我的坏!另外,名字都弥补了明显的DPA原因:)

+0

你能张贴的样本数据和所需的O/P? – Teja 2012-04-02 17:57:42

+0

旅客记录这位乘客是从哪里来的?你在哪里谈论顾客的权利? – sujal 2012-04-02 18:03:21

+0

检查我的答案.... – sujal 2012-04-02 18:27:21

回答

3

你想要COUNT()功能

SELECT count(*) AS count FROM customers WHERE familyID="001" 

您可以用列名替换*,使得它快一点。

-1

关于第一个问题,这会做

$result = @mysql_query("SELECT * FROM tbl_name WHERE familyID = '001'"); 
echo mysql_num_rows($result); //This line should display the count 
+0

-1使用'@'运算符完全无用且未被调用的方式。 – 2012-04-02 18:03:43

0

如果你想要独一无二的记录,以及作为计数使用,与OVER功能:

SELECT customers.id, 
    customers.additional_columns, 
    count(1) OVER (PARTITION BY familyID) AS count 
FROM customers 
0

你可以这样做

$result = mysql_query("SELECT * FROM families where familyID='001'", $link); 
$num_rows = mysql_num_rows($result); 

source

1

您可以在这种情况下使用count函数。它可以用作。

Select count(*) form TABLE NAME where familyID = "001" 
1
$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; 
    } 

你可以从所有的记录*和$计数u能得到客户的数量