[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Может ли быть уникальность условием?
Владимир55
Подсчитывается количество уникальных IP:

mysql_query("SELECT COUNT(`id`) AS 'cnt' FROM `input_information` WHERE `ip` = '$ip' ");


Но в таблице есть еще поле URL, по которому может быть несколько записей с данным IP.

Как подсчитать количество записей с уникальным значением IP, исключив из подсчета записи с дублирующими URL ?
Kusss
SELECT COUNT( DISTINCT  `ip` ) FROM  `input_information`
Владимир55
Спасибо, это могло бы сделать исходную запись более лаконичной, но дальше в скрипте идет обработка с учетом IP, так что в данном случае так не надо.

Но главная проблема - это уникальность URL. Как её решить?.
Kusss
нужно уникальное совпадение "ip - url" ?
то есть, 1 ip имеет допустим 5 уникальных страниц (всего допустим 7), и это должно быть в итоге 5 ?
Владимир55
IP URL
123.12.0.0 /
123.12.0.0 /
123.12.0.0 /abc.php


Должно быть две записи с IP 123.12.0.0.
Kusss
я вижу 2 варианта . Первый это обычный запрос
$sql = "
SELECT
id
FROM
`input_information`
GROUP BY
`ip`,`url`
"
;
$sql = mysql_query($sql);
echo 'уникальных записей '.mysql_num_rows($sql);
и второй сразу в mysql
SELECT 
COUNT( `group`.`id` )
FROM
(
SELECT
`id`
FROM
`input_information`
GROUP BY
`ip`,
`url`
) AS `group`
Владимир55
Спасибо!

Я вот тоже пытался в один запрос уложиться, но никак не получалось! Вроде бы, условия несложны, а в одно обращения не вписываются.

Еще раз спасибо!
Kusss
правда такой запрос очень долго выполняется .
у меня на 322 000 записях выполняется 6.1 сек.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.