|
|
|
| В общем нужно сосчитать строки в которых было бы введено определённое значение...
например есть таблица:
CREATE TABLE 'soob' (
'id_soob' INT NOT NULL AUTO_INCREMENT ,
'name' TINYTEXT,
'email' TINYTEXT,
'homepage' TINYTEXT,
'gorod' TINYTEXT,
'soob' TINYTEXT,
'comment' TINYTEXT,
'time' DATETIME DEFAULT NULL ,
PRIMARY KEY (id_soob)
) TYPE = MYISAM;
|
и нужно сосчитать колличество допустим Емалов одинаковых(!) вот.... | |
|
|
|
|
|
|
|
для: 10100100
(30.11.2005 в 17:23)
| |
SELECT COUNT(email)
FROM soob;
|
Для уникальных значений:
SELECT COUNT(DISTINCT email)
FROM soob;
|
| |
|
|
|
|
|
|
|
для: codexomega
(30.11.2005 в 20:54)
| | а можно примеры расшифровать поподробнее... | |
|
|
|
|
|
|
|
для: 10100100
(02.12.2005 в 05:43)
| | Ну, первое выдает общее число полей с емэйлом.
А второе - число уникальных емэйлов, т.е которые не повторяются. | |
|
|
|
|
|
|
|
для: codexomega
(02.12.2005 в 06:43)
| | гыксь, ну енто т опонятно, а что конкретно значит ДИСТРИКТ?
и получается вместо "email" нужно будет писать нужное значение? | |
|
|
|
|
|
|
|
для: 10100100
(02.12.2005 в 09:08)
| | Ключевое слово DISTINCT - означает выбрать уникальные значения столбца. | |
|
|
|
|
|
|
|
для: 10100100
(30.11.2005 в 17:23)
| | хм, пожалуй следует немного уточнить...
У меня есть cms у каждой новости рядом есть кнопка "комментарии[]" и мне нужно чтобы в квадратных скобочках было колличество комментариев к каждой статье. на странице примерно 20 новостей... | |
|
|
|
|
|
|
|
для: 10100100
(02.12.2005 в 14:14)
| | Тогда вам еще придется использовать условие WHERE.
Что-то типа этого:
SELECT COUNT(comment) FROM soob WHERE ...
|
Подождите, а новости где находятся? В отдельной таблице?
Что то не пойму структуру...А где статьи? | |
|
|
|
|
|
|
|
для: codexomega
(03.12.2005 в 06:44)
| | корочс структура вот она...
CREATE TABLE 'cms' (
'id_news' INT NOT NULL AUTO_INCREMENT,
'name_new' TINYTEXT,
'pred_new' TINYTEXT,
'all_new' TINYTEXT,
'time' DATETIME DEFAULT NULL ,
PRIMARY KEY (id_news)
) TYPE = MYISAM;
CREATE TABLE 'comments' (
'id_comments' INT NOT NULL AUTO_INCREMENT,
'id_news' TINYTEXT,
'name' TINYTEXT,
'comment' TINYTEXT DEFAULT NULL,
'time' DATETIME DEFAULT NULL ,
PRIMARY KEY (id_comments)
) TYPE = MYISAM;
|
вот я и ломаю себе голову в догадках, по идее я тож думал что тут where понадобится но чтото вот начал сомневаться.... потому как с where срабатывает только если мы учитываем только какую либо одну новость. а когда со всеми сразу он просто считает все ВООБЩЕ столбцы а нам нужно разбить все эти комменты по id_news | |
|
|
|
|
|
|
|
для: 10100100
(03.12.2005 в 08:29)
| | У меня есть cms у каждой новости рядом есть кнопка "комментарии[]" и мне нужно чтобы в квадратных скобочках было колличество комментариев к каждой статье.
Не знаю, что то до меня не доходит...
Ну ладно, попробуем:
SELECT COUNT(comment) FROM comments, cms WHERE comments.id_news = cms.id_news;
|
| |
|
|
|
|
|
|
|
для: codexomega
(03.12.2005 в 22:07)
| | о, начинаю понимать...
в принципе вариант, но даж и не знаю, надо попробовать... а что конкретно значит вот это?
| |
|
|
|
|
|
|
|
для: 10100100
(04.12.2005 в 15:38)
| | Дословно означает: Посчитай комментарии.
COUNT = считать. | |
|
|
|
|
|
|
|
для: 10100100
(04.12.2005 в 15:38)
| | Добавлю лишь, что COUNT() - это внутренняя функция MySQL - вообще MySQL обладает большим набором функций, некоторые из которых превосходят по функциональности PHP (например битовые функции или функции для работы с датой). | |
|
|
|
|
|
|
|
для: cheops
(05.12.2005 в 02:44)
| | короч я разобрался - то что мне нужно с родни функции вашего форума - функция подсчёта оставленных сообщений! каким образом Вы это делаете Игорь Вячеславович!? | |
|
|
|
|
|
|
|
для: 10100100
(07.12.2005 в 16:05)
| | При помощи функции COUNT()... только в запросе ставится условие, которое выбирает только те записи, которые помечены датой большей даты последнего посещения пользователя.
SELECT COUNT(*) FROM tbl WHERE putdate > '$last_date'
|
| |
|
|
|
|
|
|
|
для: cheops
(07.12.2005 в 16:35)
| | а как он подсчитывает именно к нужной теме сообщения? всё тем же запросом? | |
|
|
|
|
|
|
|
для: 10100100
(07.12.2005 в 18:28)
| | Да только добавляются ещё условия, например если тема имеет идентификатор id_theme = 45, то запрос может выглядеть следующим образом
SELECT COUNT(*) FROM tbl WHERE putdate > '$last_date' AND id_theme = 45
|
| |
|
|
|
|
|
|
|
для: cheops
(08.12.2005 в 01:05)
| | хм, ну это то понятно, но вот вопрос, на странице то не одна тема а целая куча! | |
|
|
|
|
|
|
|
для: 10100100
(08.12.2005 в 07:25)
| | Здесь в дело вступает либо цикл, либо ключевое слово GROUP BY
SELECT id_theme, COUNT(*) FROM tbl WHERE putdate > '$last_date' GROUP BY id_theme
|
Этот оператор вернёт число строк, соответствующих числу уникальных значений id_theme, причём COUNT(*) посчитает число строк для каждого id_theme. | |
|
|
|
|
|
|
|
для: cheops
(08.12.2005 в 12:39)
| | ой блин - мне уже страшно, теперь даже не знаю с чего начать.. :)))) | |
|
|
|