Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Запрос с limit и группировка. / 11 сообщений из 11, страница 1 из 1
13.06.2005, 12:27
    #33114075
ynike
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос с limit и группировка.
Подскажите можно ли решить две проблеммы другими методами.

1. Есть запрос c группировкой данных

select field1 from table group by field1

Как можно посчитать сколько записей в результате будет что то вроде count(*)
Можно создать View и тогда посчитать а можно ли проще, желательно без привязки к синтаксису mysql

2. Часто бывает необходимость выводить данные постранично.
Удобно использовать оперетор limit

select * from table limit 0,100 ит.д.

Но что бы узнать кол-во записей необходимо выполнить операцию.

select count(*) from table

воозможно ли получить общее число строк не делая два запроса или это не воозможно?

Большое спасибо.
...
Рейтинг: 0 / 0
13.06.2005, 13:35
    #33114150
©Felix
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос с limit и группировка.
Код: plaintext
SELECT count(*), field1 FROM table
_______________
Felix
...
Рейтинг: 0 / 0
13.06.2005, 13:54
    #33114177
ynike
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос с limit и группировка.
Нет.

если имелось ввиду запрос вида

select count(*), field1 from table group by field1

это запрос не посчитает кол-во строк в результате, а посчитает кол-во вхождений каждого поля. А нужно просто цифра Итого строк.
...
Рейтинг: 0 / 0
13.06.2005, 18:15
    #33114482
JackS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос с limit и группировка.
а поискать по форуму про num_rows?
...
Рейтинг: 0 / 0
13.06.2005, 18:17
    #33114486
JackS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос с limit и группировка.
по второму вопросу - нет нельзя ... или вложенным или двумя ...
...
Рейтинг: 0 / 0
13.06.2005, 18:20
    #33114492
JackS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос с limit и группировка.
хотя честно говоря я уже даже забыл даже весь процесс коннекта к мусклу после того как кучу наработок оформил в классы с функциями :) но с этой задачей и я когда то голову ломал ... так ничё и не поломал ... крепкая попалась :)
...
Рейтинг: 0 / 0
13.06.2005, 18:34
    #33114519
ynike
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос с limit и группировка.
Спасибо.

но num_rows
никак не подходит ведь что бы его использовать сначала необходимо данные получить в а если их много получается лишние данные будут перекачиватся клиенту а нужно только одну цифру.
...
Рейтинг: 0 / 0
14.06.2005, 12:21
    #33115366
wolk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос с limit и группировка.
в php - mysql_num_rows (запрос), выведет именно количество возвращаемых строк
---------
С уважением!
wolk.nutep.com
...
Рейтинг: 0 / 0
14.06.2005, 18:14
    #33116381
Astron
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос с limit и группировка.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
mysql> select col1,count(*) from tbl1 group by col1;
+------+----------+
| col1 | count(*) |
+------+----------+
|     0  |         9  |
|     1  |        10  |
|     2  |         8  |
|    10  |         1  |
|    20  |         2  |
|    23  |         1  |
|    30  |         1  |
|    40  |         1  |
|    50  |         1  |
|    60  |         1  |
|    70  |         1  |
|    80  |         1  |
|    90  |         1  |
|   100  |         1  |
|   110  |         1  |
|   120  |         1  |
|   130  |         1  |
|   140  |         1  |
|   150  |         1  |
|   160  |         1  |
|   170  |         1  |
|   180  |         1  |
|   190  |         1  |
|   200  |         1  |
|   210  |         1  |
|   220  |         1  |
|   230  |         1  |
|   240  |         1  |
+------+----------+
 28  rows in set ( 0 . 00  sec)

mysql> select count(distinct col1) from tbl1;
+----------------------+
| count(distinct col1) |
+----------------------+
|                    28  |
+----------------------+
 1  row in set ( 0 . 00  sec)
...
Рейтинг: 0 / 0
14.06.2005, 18:19
    #33116390
Astron
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос с limit и группировка.
ynike
Но что бы узнать кол-во записей необходимо выполнить операцию.

select count(*) from table

воозможно ли получить общее число строк не делая два запроса или это не воозможно?

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

Увы. Есть библиотека для Oracle/Delphi, Direct Oracle Access. Дельфе тоже часто бывает нужно общее кол-во записей, иначе гридам хреново, так библиотека при открытии набора делает
SELECT COUNT(*) FROM (ЗАПРОС_ВВЕДЕННЫЙ_ПОЛЬЗОВАТЕЛЕМ);
Уж если оракл не сподобился...
...
Рейтинг: 0 / 0
14.06.2005, 18:35
    #33116431
ynike
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос с limit и группировка.
Всем спасибо. решение найденно для mysql

select count( distinct filed1) from table
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Запрос с limit и группировка. / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]