Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Ноября 20, 2017, 18:09 по Москве
Начало Помощь Поиск Войти Регистрация
Новости: Не ленись, тренируйся! Telegram - t.me/screensquid

+  Break-people
|-+  ООО "На коленке"
| |-+  Screen Squid
| | |-+  Расскажи об увиденном!
« предыдущая тема следующая тема »
Страниц: 1 ... 24 25 [26] Печать
Автор Тема: Расскажи об увиденном!  (Прочитано 76769 раз)
KerryT
Терапевты
***
Сообщений: 1889

Верю в тебя, все получится!

« Ответ #375 : Мая 02, 2017, 18:30 по Москве »

В Screen Squid v.1.12b при переходе в отчёты "HTTP статусы" и "Трафик по периодам (все) " вместо даты появляется прочерк (<<  -  >>). У меня лечится только через любой другой отчёт с нажатием кнопки "День" или "Месяц". Правда в логах только один день =)

Баг исправлен, закомиттено. Код гораздо проще править стало :) Баги чинятся быстрее.

Так, если с переходом на php7 мы закончили, то я обратно откатываюсь на 5.3.3. У меня phpmyadmin не дружит с php7 :))

А вот насчет mysql я так не очень понял, что ему нужно от меня. Возможно, индексы по полям, которые в group by. Вобщем это проблема известная, там нужно mysql поднастроить.

ключевые слова в гугле "disable sql_mode ONLY_FULL_GROUP_BY"
Записан

Мы тебе помогли?:) Принимаем пожертвования на мечту http://break-people.ru/cmsmade/?page=how_to_donate_to_project  QIWI +79224359193
Scherbak.Alexander

Сообщений: 234

WWW
« Ответ #376 : Мая 02, 2017, 19:23 по Москве »

Это не проблема MySQL, это проблема того, что она позволяет делать некорректные с точки зрения реляционной алгебры GROUP BY. Ни MS SQL, ни Firebird, ни PostgreSQL не позволяют делать сокращённые группировки. Но аналогичной проблемой страдает FoxPro, отчего переходящие с неё программисты очень сильно стонут и кричат, что все эти ваши СУБД полный отстой =)
Т.е., например,
SELECT one, two,three, four
FROM table
GROUP BY one
в корне некорректно, т.к. СУБД должна сама каким-то образом догадываться по каким следующим полям делать группировку.

Поэтому правильный вариант такой:
SELECT one, two, three, four
FROM table
GROUP BY one, two, three, four /*или иной порядок*/
Записан
KerryT
Терапевты
***
Сообщений: 1889

Верю в тебя, все получится!

« Ответ #377 : Мая 02, 2017, 19:30 по Москве »

Это не проблема MySQL, это проблема того, что она позволяет делать некорректные с точки зрения реляционной алгебры GROUP BY. Ни MS SQL, ни Firebird, ни PostgreSQL не позволяют делать сокращённые группировки. Но аналогичной проблемой страдает FoxPro, отчего переходящие с неё программисты очень сильно стонут и кричат, что все эти ваши СУБД полный отстой =)
Т.е., например,
SELECT one, two,three, four
FROM table
GROUP BY one
в корне некорректно, т.к. СУБД должна сама каким-то образом догадываться по каким следующим полям делать группировку.

Поэтому правильный вариант такой:
SELECT one, two, three, four
FROM table
GROUP BY one, two, three, four /*или иной порядок*/

А если мне группировка не нужна по другим полям?.. вобщем-то я все-равно не смогу чем-то помочь, потому что mysql 5.7, встал, но так и не завелся на centos 6. Как получится запустить, тогда попробую пофиксить и понять, почему так :)
Записан

Мы тебе помогли?:) Принимаем пожертвования на мечту http://break-people.ru/cmsmade/?page=how_to_donate_to_project  QIWI +79224359193
Scherbak.Alexander

Сообщений: 234

WWW
« Ответ #378 : Мая 02, 2017, 20:32 по Москве »

А если мне группировка не нужна по другим полям?
Вообще лучше объяснять на каком-либо примере. Но тут скорее ответ один, - переделать запрос. Может надо использовать агрегатные функции, может ещё что. Но правильно у многих СУБД всего два:
1. Каждый столбец, если он не агрегатный (max, avg и прочее), оператора SELECT должен быть включен в GROUP BY
2. Оператор SELECT может содержать лишь одну GROUP BY
... и с этим ничего поделать нельзя. Если бы ты писал запросы MS SQL, то никакими настройками СУБД это не исправить =)

Я сейчас отключил в 5.7 контроль полноты группировки, иначе все запросы переписывать придётся =)
Записан
KerryT
Терапевты
***
Сообщений: 1889

Верю в тебя, все получится!

« Ответ #379 : Мая 03, 2017, 04:37 по Москве »

А если мне группировка не нужна по другим полям?
Вообще лучше объяснять на каком-либо примере. Но тут скорее ответ один, - переделать запрос. Может надо использовать агрегатные функции, может ещё что. Но правильно у многих СУБД всего два:
1. Каждый столбец, если он не агрегатный (max, avg и прочее), оператора SELECT должен быть включен в GROUP BY
2. Оператор SELECT может содержать лишь одну GROUP BY
... и с этим ничего поделать нельзя. Если бы ты писал запросы MS SQL, то никакими настройками СУБД это не исправить =)

Я сейчас отключил в 5.7 контроль полноты группировки, иначе все запросы переписывать придётся =)

Ну давай, пока так. После того как у меня заведется, я перепишу запросы, чтобы все по дефолту работало:)
Записан

Мы тебе помогли?:) Принимаем пожертвования на мечту http://break-people.ru/cmsmade/?page=how_to_donate_to_project  QIWI +79224359193
Страниц: 1 ... 24 25 [26] Печать 
« предыдущая тема следующая тема »
 


Войти

Powered by MySQL Powered by PHP Powered by SMF 2.0 RC1 | SMF © 2006–2009, Simple Machines LLC Valid XHTML 1.0! Valid CSS!