Автор Тема: Как это сделать в одном запросе  (Прочитано 3021 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Don_Anton

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 10
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Как это сделать в одном запросе
« : 01 Декабря 2003, 20:54:51 »
Есть таблица HOSTS в базе на MySQL .

ip   browser   os   language
2   MSIE 6.0
4   MSIE 5.0
5   MSIE 6.0
7   MSIE 4.0
3   MSIE 4.0
1   MSIE 6.0
9   MSIE 5.0

необходимо выбрать число разных браузеров:
у меня есть запрос
SELECT browser, COUNT(*) from HOSTS GROUP BY browser

получаю
MSIE 4.0   2
MSIE 5.0   2
MSIE 6.0   3

а как сделать, чтобы результат был отсортирован по количесвту браузеров, т.е.

MSIE 6.0   3
MSIE 4.0   2
MSIE 5.0   2

??? конечно в одно запросе

Оффлайн Yukko

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1586
  • +0/-0
  • 0
    • Просмотр профиля
    • http://estrabota.com.ua
Как это сделать в одном запросе
« Ответ #1 : 01 Декабря 2003, 20:58:56 »
order by ip desc
работа в Украине

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Как это сделать в одном запросе
« Ответ #2 : 01 Декабря 2003, 23:06:07 »
order by 2 desc
вроде
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн metton

  • access granted
  • Старожил
  • ****
  • Сообщений: 320
  • +0/-0
  • 2
    • Просмотр профиля
    • http://bluejack.ru/
Как это сделать в одном запросе
« Ответ #3 : 02 Декабря 2003, 01:07:42 »
2Макс
Точно, по-мом нельзя указывать столбцы, которых нет в списке выбираемых. Или мона так:

SELECT browser, COUNT(*) AS cnt from HOSTS GROUP BY browser ORDER BY cnt DESC
 BlueJacking среди нас

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Как это сделать в одном запросе
« Ответ #4 : 02 Декабря 2003, 01:34:03 »
metton
одна из прелестей программирования в том, что здесь все можно попробовать самому, поэкспериментировать. Сделай тестовую таблицу и попробуй похожий запрос.
http://www.mysql.com/doc/ru/SELECT.html
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн metton

  • access granted
  • Старожил
  • ****
  • Сообщений: 320
  • +0/-0
  • 2
    • Просмотр профиля
    • http://bluejack.ru/
Как это сделать в одном запросе
« Ответ #5 : 02 Декабря 2003, 23:17:32 »
В итоге так:
SELECT browser, os, COUNT(*) AS cnt from HOSTS GROUP BY os ORDER BY cnt ASC
И даже так:
SELECT browser, os, COUNT(*) from HOSTS GROUP BY os ORDER BY ip ASC

Хм... Причём второй запрос глючит php_my_admin-а. Выдаётся ошибка
Warning: eregi(): REG_BADRPT:srepetition-operator operand invalid in e:\\internet\\home\\localhost\\www\\php_my_admin\\libraries\\display_tbl.lib.php on line 551
хотя и запрос успешно выполняется - результаты показываются...

Бред какой-то... Если изменить этот "глючный" запрос на
SELECT browser, os, COUNT(*) AS cnt from HOSTS GROUP BY os ORDER BY ip ASC
то ошибка не выдаётся...
 BlueJacking среди нас

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Как это сделать в одном запросе
« Ответ #6 : 03 Декабря 2003, 00:43:31 »
metton
эту ошибку выдает phpMyAdmin (возможно глюк в нем) а не mysql.
Из консоли пробовал запрос выполнять ?
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн metton

  • access granted
  • Старожил
  • ****
  • Сообщений: 320
  • +0/-0
  • 2
    • Просмотр профиля
    • http://bluejack.ru/
Как это сделать в одном запросе
« Ответ #7 : 03 Декабря 2003, 20:11:38 »
2Макс
Да я понял, что phpMyAdmin.
Проверил в консоли - оба последних запроса выполняются нормально. Что и неудивительно. Возможно, phpMyAdmin парсит запросы перед их выполнением, и глюк - в парсере.
 BlueJacking среди нас

 

Sitemap 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