|
|
|
сложный запрос
|
|||
|---|---|---|---|
|
#18+
мне в базу сыпятся логи. мне надо вытащить 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 у нас же убывание ?? почему так, не подскажите? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2016, 09:45 |
|
||
|
сложный запрос
|
|||
|---|---|---|---|
|
#18+
Да твой запрос ваще "ниачём"! У тебя только GROUP BY `mes1` - посему в качестве значений полей date и time будет возвращено значение из какой-то случайно попавшейся под руку записи из этой группы (в пределе - даже не из одной записи, а из двух разных). И сортировать по ним - бредовая затея. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2016, 11:33 |
|
||
|
сложный запрос
|
|||
|---|---|---|---|
|
#18+
авторУ тебя только GROUP BY `mes1` - посему в качестве значений полей date и time будет возвращено значение из какой-то случайно попавшейся под руку записи из этой группы ну да, груперую по mes1, а считаю сколько их. сейчас date и time выдается стабильно первые. анадо последние, и кверху их. чо делать? есть мысли ли то какие? ясно что можно перебирать массивы в php. но в рамках SQL должно выбираться, по идее как то. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2016, 14:22 |
|
||
|
сложный запрос
|
|||
|---|---|---|---|
|
#18+
ну да, груперую по mes1, и считаю только их (не нашел как отредактировать описку) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2016, 14:24 |
|
||
|
сложный запрос
|
|||
|---|---|---|---|
|
#18+
Exec1сейчас date и time выдается стабильно первые.А завтра даст последние - чё делать будешь? Попробуй вместо отдельных date и time собрать их в одно поле и взять для этого выражения, например, минимум. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. PS. Чей вообще могучий интеллект разделил дату-время на два поля? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2016, 15:40 |
|
||
|
сложный запрос
|
|||
|---|---|---|---|
|
#18+
запрос дал пустой ответ. авторPS. Чей вообще могучий интеллект разделил дату-время на два поля? мой. это вообще системное время часов, корое я веду для себя, для удобства, так сказать. так как cisco вообще шлет месяц например текстом. :) надо как то все вместе сделать? не вопрос, готов попробовать. лоджер у меня самописный, могу добавить столбик! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2016, 16:01 |
|
||
|
сложный запрос
|
|||
|---|---|---|---|
|
#18+
тип таблицы: MyISAM какой формат нужен? какой тип поля нужен? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2016, 16:04 |
|
||
|
сложный запрос
|
|||
|---|---|---|---|
|
#18+
Exec1какой формат нужен? какой тип поля нужен?Это вообще-то ты должен был давным-давно выложить структуру хранения данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2016, 16:11 |
|
||
|
сложный запрос
|
|||
|---|---|---|---|
|
#18+
$ 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 ; это Вы имели ввиду? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2016, 16:52 |
|
||
|
сложный запрос
|
|||
|---|---|---|---|
|
#18+
Да, это. При такой структуре CAST не нужен, убери его, оставь только MIN(ADDTIME(date, time)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2016, 17:29 |
|
||
|
сложный запрос
|
|||
|---|---|---|---|
|
#18+
запрос: 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 дал ноль строк. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2016, 08:42 |
|
||
|
сложный запрос
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. 2. почему одинаковый результат дают? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2016, 09:51 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=39269456&tid=1831598]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
147ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
33ms |
get tp. blocked users: |
1ms |
| others: | 217ms |
| total: | 433ms |

| 0 / 0 |
