powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / сложный запрос
13 сообщений из 13, страница 1 из 1
сложный запрос
    #39268516
Exec1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
мне в базу сыпятся логи.
мне надо вытащить ip, я делаю это так: SUBSTR(`mes`, 18, 16)
посчитать их количество: делаю так COUNT(*) AS cnt

а вот дальше, мне надо выполнить сортировку,
сначала по дате, и внутри каждой даты по времени.

то есть я хочу видеть в результате:
первая строчка - самый последний ip, который мне залетел в базу, посчитать сполько таких ip у меня было, его дату и время.
вторая строчка - предпоследний ip, и все тоже самое
треть строчка - предпред последний ip, и все тоже самое
ну и так далее..

если понятно что я написал...

вот что я сам навоял:
SELECT SUBSTR(`mes`, 18, 16) `mes1`, COUNT(*) AS cnt, date, time FROM `alog` WHERE `nomer`='6-3' GROUP BY `mes1` ORDER BY `date` DESC, `time` DESC LIMIT 30;

phpMyAdm подругивается:
Current selection does not contain a unique column. Grid edit, checkbox, Edit, Copy and Delete features are not available.
выдает первую дату, за место последней, и такае же проплема со временем.
DESC у нас же убывание ??

почему так, не подскажите?
...
Рейтинг: 0 / 0
сложный запрос
    #39268624
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да твой запрос ваще "ниачём"!
У тебя только GROUP BY `mes1` - посему в качестве значений полей date и time будет возвращено значение из какой-то случайно попавшейся под руку записи из этой группы (в пределе - даже не из одной записи, а из двух разных). И сортировать по ним - бредовая затея.
...
Рейтинг: 0 / 0
сложный запрос
    #39268877
Exec1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторУ тебя только GROUP BY `mes1` - посему в качестве значений полей date и time будет возвращено значение из какой-то случайно попавшейся под руку записи из этой группы

ну да, груперую по mes1, а считаю сколько их.

сейчас date и time выдается стабильно первые.
анадо последние, и кверху их.

чо делать? есть мысли ли то какие?
ясно что можно перебирать массивы в php.
но в рамках SQL должно выбираться, по идее как то.
...
Рейтинг: 0 / 0
сложный запрос
    #39268880
Exec1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну да, груперую по mes1, и считаю только их

(не нашел как отредактировать описку)
...
Рейтинг: 0 / 0
сложный запрос
    #39269005
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Exec1сейчас date и time выдается стабильно первые.А завтра даст последние - чё делать будешь?
Попробуй вместо отдельных date и time собрать их в одно поле и взять для этого выражения, например, минимум.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
SELECT SUBSTR(mes, 18, 16) AS mes1, 
       COUNT(*) AS cnt, 
       MIN(ADDTIME(CAST(date AS DATETIME), time)) AS dt
FROM 
       alog
WHERE 
       nomer = '6-3' 
GROUP BY 
       mes1
ORDER BY 3 DESC 
LIMIT 30;



PS. Чей вообще могучий интеллект разделил дату-время на два поля?
...
Рейтинг: 0 / 0
сложный запрос
    #39269046
Exec1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
запрос дал пустой ответ.

авторPS. Чей вообще могучий интеллект разделил дату-время на два поля?

мой. это вообще системное время часов, корое я веду для себя, для удобства, так сказать.
так как cisco вообще шлет месяц например текстом. :)

надо как то все вместе сделать?
не вопрос, готов попробовать. лоджер у меня самописный, могу добавить столбик!
...
Рейтинг: 0 / 0
сложный запрос
    #39269051
Exec1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
тип таблицы: MyISAM
какой формат нужен?
какой тип поля нужен?
...
Рейтинг: 0 / 0
сложный запрос
    #39269062
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Exec1какой формат нужен?
какой тип поля нужен?Это вообще-то ты должен был давным-давно выложить структуру хранения данных.
...
Рейтинг: 0 / 0
сложный запрос
    #39269115
Exec1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
$ head -50 alog.sql
....
CREATE TABLE IF NOT EXISTS `alog` (
`id` int(8) unsigned NOT NULL,
`date` date DEFAULT NULL,
`time` time DEFAULT NULL,
`mesayc` varchar(3) DEFAULT NULL,
`day` int(1) DEFAULT NULL,
`god` int(1) DEFAULT NULL,
`vremya` time DEFAULT NULL,
`nomer` varchar(8) DEFAULT NULL,
`mes` varchar(255) DEFAULT NULL,
`ip` varchar(15) DEFAULT NULL,
`lev` int(1) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1031114 ;

это Вы имели ввиду?
...
Рейтинг: 0 / 0
сложный запрос
    #39269156
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, это. При такой структуре CAST не нужен, убери его, оставь только MIN(ADDTIME(date, time))
...
Рейтинг: 0 / 0
сложный запрос
    #39269422
Exec1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
запрос:
SELECT SUBSTR(mes, 18, 16) AS mes1, COUNT(*) AS cnt, MIN(ADDTIME(date, time)) AS dt FROM alog WHERE nomer = '6-3' GROUP BY mes1 ORDER BY 3 DESC LIMIT 30

дал ноль строк.
...
Рейтинг: 0 / 0
сложный запрос
    #39269450
Exec1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: sql
1.
2.
	SELECT SUBSTR(`mes`, 18, 16) `mes1`, COUNT(*) AS cnt, id, date, time FROM `alog` WHERE `nomer`='6-3' GROUP BY `mes1` HAVING `cnt` > 99 AND `cnt` < 110 ORDER BY `cnt` DESC, `id` DESC LIMIT 3000;
	SELECT SUBSTR(`mes`, 18, 16) `mes1`, COUNT(*) AS cnt, id, date, time FROM `alog` WHERE `nomer`='6-3' GROUP BY `mes1` HAVING `cnt` > 99 AND `cnt` < 110 ORDER BY `cnt` DESC, `id` ASC LIMIT 3000;



почему одинаковый результат дают?
...
Рейтинг: 0 / 0
сложный запрос
    #39269456
Exec1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: sql
1.
SELECT SUBSTR(mes, 18, 16) AS mes1, COUNT(*) AS cnt, MIN(ADDTIME(date, time)) AS dt FROM alog WHERE nomer = '6-3' GROUP BY mes1 ORDER BY 3 DESC LIMIT 30 



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


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