|
Получить количество строк в выборке и саму выборку
|
|||
---|---|---|---|
#18+
Здравствуйте. У нас ситуация следующая: есть PHP 5.3 и mssql2012. Нужно одновременно получать выборку из mssql и количество записей в ней. Пока на ум приходит 2 варианта: 1) сначала выполнить искомый селект с COUNT(), сохранить в @RowCount, а потом вывести тот же селект, добавив поле @Count. 2) записать выборку искомого селекта во временную таблицу, а потом уже для неё сделать сначала COUNT() в @RowCount, а потом из неё селект * и поле @RowCount Но по-моему это как-то не по фэншую.. Может есть варианты выполнить это как-то более эстетично?.. ps я занимаюсь sql, php другой человек пишет ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2013, 02:39 |
|
Получить количество строк в выборке и саму выборку
|
|||
---|---|---|---|
#18+
Код: sql 1.
не катит? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2013, 02:40 |
|
Получить количество строк в выборке и саму выборку
|
|||
---|---|---|---|
#18+
select count(*) over(),* from sys.tables ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2013, 02:41 |
|
Получить количество строк в выборке и саму выборку
|
|||
---|---|---|---|
#18+
Зайцев Фёдор , Код: sql 1.
выводит ноль в последнем столбце.. А если отдельный селект делать - то в принципе получается то же самое, что и у меня.. locky , во! то что надо! Спасибо! Как всегда все просто=)) Всем спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2013, 07:57 |
|
Получить количество строк в выборке и саму выборку
|
|||
---|---|---|---|
#18+
KasKasА если отдельный селект делать - то в принципе получается то же самое, что и у меня..Не то же самое, а в 2 раза менее затратно. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2013, 08:53 |
|
Получить количество строк в выборке и саму выборку
|
|||
---|---|---|---|
#18+
KasKas, еще вариант без лишних чтений Код: sql 1. 2. 3. 4.
, где MyTable.id - это ключевое поле. На выходе в строке с id = NULL будет количество в cnt ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2013, 10:58 |
|
Получить количество строк в выборке и саму выборку
|
|||
---|---|---|---|
#18+
Ничего себе все наговнокодили, кол-во элементов в таблице передавать столько раз, сколько элементов в таблице. То есть при запросе 1000 записей, 999 полей передается лишние. Если они байта по 4, то ~4 кб в помойку при протоколе без сжатия. Автор, может все таки сначала запрос, а потом select @@rowcount ? Или если так хотите в одной выборке, то что-то с union придумать, чтобы в последней строке кол-во записей было? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2013, 11:42 |
|
Получить количество строк в выборке и саму выборку
|
|||
---|---|---|---|
#18+
alexeyvgKasKasА если отдельный селект делать - то в принципе получается то же самое, что и у меня..Не то же самое, а в 2 раза менее затратно. в нашем случае видимо все выполняется слишком быстро, чтобы это почувствовать. Говоря "то же самое" я имел ввиду количество кода=) ShakillKasKas, еще вариант без лишних чтений Код: sql 1. 2. 3. 4.
, где MyTable.id - это ключевое поле. На выходе в строке с id = NULL будет количество в cnt спасибо, может пригодится) super-codeНичего себе все наговнокодили, кол-во элементов в таблице передавать столько раз, сколько элементов в таблице. То есть при запросе 1000 записей, 999 полей передается лишние. Если они байта по 4, то ~4 кб в помойку при протоколе без сжатия. Автор, может все таки сначала запрос, а потом select @@rowcount ? Или если так хотите в одной выборке, то что-то с union придумать, чтобы в последней строке кол-во записей было? Думаю нет особого смысла заморачиваться. В этой выборке максимум пара сотен записей, так что овчинка выделки не стоит.. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2013, 01:43 |
|
|
start [/forum/topic.php?fid=46&msg=38480991&tid=1704152]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
161ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
2ms |
others: | 16ms |
total: | 274ms |
0 / 0 |