一个mySQL计数查询返回一个数值?

时间:2012-04-02 17:56:11

标签: php mysql sql phpmyadmin

我有一个数据库,里面有几百个客户,所有这些都是独一无二的。但是,如果某些客户属于某个家庭,则会将其链接在一起。 E.g。

我有一个家庭ID,可以链接这些客户,例如A. Jones夫人是客户编号005,B.Jones先生是客户编号017,因为他们有关系,我已经为他们分配了家庭ID 001。

我在网上搜索过,但似乎没有什么地方可以为我提供任何帮助,以便我可以做一些mySQL计数来回应家庭ID = 001的人数。

另外,有什么办法,我可以返回两个单独的客户记录,因为mySQL搜索条件是familyID = 001。

非常感谢,

汤姆。

编辑:意识到我会把乘客而不是顾客,我的坏!此外,这些名称是出于明显的DPA原因而制定的:)

6 个答案:

答案 0 :(得分:3)

您需要COUNT()功能

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

您可以使用列名替换*,使其更快一些。

答案 1 :(得分:1)

在这种情况下你可以使用计数功能。它可以用作。

Select count(*) form TABLE NAME where familyID = "001"

答案 2 :(得分: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;
     }

您可以从*获取所有记录,从$ count获得可以获得客户数量的记录

答案 3 :(得分:0)

如果您想要使用OVER函数的唯一记录和计数:

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

答案 4 :(得分:0)

您可以执行类似

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

source

答案 5 :(得分:-1)

对于你的第一个问题,这将做

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