Запрос подсчета mySQL для возврата числового значения? - PullRequest
2 голосов
/ 02 апреля 2012

У меня есть база данных с несколькими сотнями клиентов, все они уникальны. Тем не менее, некоторые клиенты связаны друг с другом, если они являются частью семьи. Э.Г.

У меня есть идентификатор семьи, который связывает этих клиентов, например, Г-жа А. Джонс - клиент № 005, а г-н Б. Джонс - клиент № 017, и, поскольку они связаны, я назначил им номер семьи 001.

Я искал в Интернете, но, похоже, нигде не было так полезно, чтобы помочь мне понять, как я могу выполнить какой-то подсчет mySQL для отображения количества людей, ГДЕ familyID = 001.

Кроме того, есть ли способ, я мог бы вернуть обе отдельные записи клиентов, учитывая критерии поиска mySQL для familyID = 001.

Большое спасибо,

Том.

РЕДАКТИРОВАТЬ: понял, что я поставил бы пассажиров вместо клиентов, мой плохой! Кроме того, имена составлены по очевидным причинам DPA:)

Ответы [ 6 ]

3 голосов
/ 02 апреля 2012

Вы хотите функцию COUNT()

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

Вы можете заменить * именем столбца, это сделает его немного быстрее.

1 голос
/ 02 апреля 2012
$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 вы можете получить количество клиентов

1 голос
/ 02 апреля 2012

Вы можете использовать функцию подсчета в таких случаях .Это можно использовать как.

Select count(*) form TABLE NAME where familyID = "001"
0 голосов
/ 02 апреля 2012

Вы можете сделать что-то вроде

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

источник

0 голосов
/ 02 апреля 2012

Если вы хотите, чтобы уникальные записи, а также счет использовались, с функцией OVER:

SELECT customers.id, 
    customers.additional_columns, 
    count(1) OVER (PARTITION BY familyID) AS count 
FROM customers
0 голосов
/ 02 апреля 2012

Для вашего первого вопроса, это будет делать

$result = @mysql_query("SELECT * FROM tbl_name WHERE familyID = '001'");
echo mysql_num_rows($result); //This line should display the count
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...