Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как получить данные из одной строки и количество строк ? / 8 сообщений из 8, страница 1 из 1
27.01.2015, 02:09:00
    #38863811
nevervhudo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить данные из одной строки и количество строк ?
Существует ли красивый способ одним запросом получить данные из одной строки и количество строк в таблице ?
...
Рейтинг: 0 / 0
27.01.2015, 02:47:28
    #38863818
furashcka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить данные из одной строки и количество строк ?
nevervhudo,
Возможно вам поможет вот этот запрос:

Код: sql
1.
SELECT COUNT(id) AS Length, id FROM users WHERE id=/*Переменная, или еще чтото...*/
...
Рейтинг: 0 / 0
27.01.2015, 02:51:33
    #38863821
nevervhudo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить данные из одной строки и количество строк ?
Нет, это не поможет. Lenght будет содержать количество строк, удовлетворяющих условию, а хочется посчитать их все.
...
Рейтинг: 0 / 0
27.01.2015, 03:36:34
    #38863829
furashcka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить данные из одной строки и количество строк ?
nevervhudo,
Извините)) забыл что у себя просто проверил с LIMIT 1 а тут условие дописал...

Тогда возможно вас устроит костыль?)

Код: sql
1.
SELECT COUNT(U1.id) AS Length, U2.id FROM ps_users U1, ps_users U2 WHERE U2.id=1



У себя так считал пользователей, хотя наверняка есть более правильное решение!
...
Рейтинг: 0 / 0
27.01.2015, 08:19:50
    #38863886
Arhat109
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить данные из одной строки и количество строк ?
nevervhudo,

SQL_CALC_FOUND_ROWS - не оно?
...
Рейтинг: 0 / 0
27.01.2015, 11:47:57
    #38864060
Cygapb-007
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить данные из одной строки и количество строк ?
nevervhudoСуществует ли красивый способ одним запросом получить данные из одной строки и количество строк в таблице ?ну разве что
Код: sql
1.
2.
3.
select t.*, (select count(*) from myTable) as total_recs
from myTable t
where id=1
...
Рейтинг: 0 / 0
27.01.2015, 12:17:08
    #38864093
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить данные из одной строки и количество строк ?
Идея получать данные разных уровней группировки одним запросом - заведомо некрасивая.
И даже красивая реализация этой идеи всей затее красоты не добавляет.
...
Рейтинг: 0 / 0
27.01.2015, 13:19:07
    #38864171
nevervhudo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить данные из одной строки и количество строк ?
furashckaТогда возможно вас устроит костыль?)
Код: sql
1.
SELECT COUNT(U1.id) AS Length, U2.id FROM ps_users U1, ps_users U2 WHERE U2.id=1



Да, это костыль работает.

Arhat109SQL_CALC_FOUND_ROWS - не оно?

По сути это то же самое, что код из второго сообщения, т.е. получим количество записей удовлетворяющих условию, а не общее их количество.

Cygapb-007 - разве вложенные запросы это не то же самое, что два разных запроса ?

AkinaИдея получать данные разных уровней группировки одним запросом - заведомо некрасивая.

Если требуется выдать случайную запись из таблицы, в которой постоянно изменяется количество строк, то применив один запрос вместо двух, не только сокращаем нагрузку на сервер, но и не теряем тех вариантов, которые могли появиться в таблице в промежутке между двумя запросами, один из которых подсчитал количество строк, а второй выбрал случайную из диапазона rand(1, $total_items) - т.е. снижаем погрешность статистики.

Спасибо всем, кто откликнулся. :)
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как получить данные из одной строки и количество строк ? / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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