Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / помогите создать запрос / 15 сообщений из 15, страница 1 из 1
31.05.2017, 08:51
    #39462822
Картежник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите создать запрос
Дана следующая таблица
ID|ST| SB
---------------------
1.| 1 |Математика
2.| 1 |Физика
3.| 2 |Физика
4.| 2 |Математика
5.| 3 |Математика
6.| 3 |История

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

группа из ST | группа из SB
-----------------------------------------
1,2 | Математика, Физика
3 | История, Математика
----------------------------------

просто group_concat и group by не помогают, так как в одном случае может сгруппировать как "Математика, Физика"
, а для другого как "Физика, Математика"
...
Рейтинг: 0 / 0
31.05.2017, 09:01
    #39462828
Картежник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите создать запрос
Картежник,

всем спасибо нашел. надо было просто внутрь функции GROUP_CONCAT добавить ORDER BY
...
Рейтинг: 0 / 0
31.05.2017, 09:14
    #39462833
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите создать запрос
Картежникв одном случае может сгруппировать как "Математика, Физика"
, а для другого как "Физика, Математика"
Получится нечто вроде
Код: sql
1.
2.
3.
4.
5.
6.
7.
SELECT GROUP_CONCAT(temp.st) `группа из ST`, temp.`группа из SB`
FROM (
SELECT `table`.st, GROUP_CONCAT(`table`.sb ORDER BY `table`.sb) `группа из SB`
FROM `table`
GROUP BY `table`.st
) temp
GROUP BY temp.`группа из SB`
...
Рейтинг: 0 / 0
31.05.2017, 09:20
    #39462839
Картежник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите создать запрос
теперь другая проблема, вроде все строки одинаковые, а все равно не все объединяет. допустим из 10 одинаковых объединятся 9, а 1 отдельно лежит. хотя по строкам все одинаково
...
Рейтинг: 0 / 0
31.05.2017, 09:25
    #39462844
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите создать запрос
Картежникдопустим из 10 одинаковых объединятся 9, а 1 отдельно лежит. хотя по строкам все одинаковоЗначит, неодинаково. Пробелы лишние неразрывные какие-нибудь или там переводы строки где-нибудь затесались...
...
Рейтинг: 0 / 0
31.05.2017, 09:28
    #39462846
Картежник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите создать запрос
AkinaКартежникдопустим из 10 одинаковых объединятся 9, а 1 отдельно лежит. хотя по строкам все одинаковоЗначит, неодинаково. Пробелы лишние неразрывные какие-нибудь или там переводы строки где-нибудь затесались...

я скопировал обе строки в блокнот, и через поиск находится и другая.
...
Рейтинг: 0 / 0
31.05.2017, 09:53
    #39462865
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите создать запрос
Картежникя скопировал обе строки в блокнот, и через поиск находится и другая.При чём тут блокнот? ВЫ хоть представляете, сколько при этом выполнено преобразований исходного значения?
Как я понимаю, проблема наблюдается для значений поля SB. Ну так выполните простейший запрос
Код: sql
1.
2.
3.
SELECT sb, COUNT(*) cnt
FROM `table`
GROUP BY sb


Если значения различаются - Вы это сразу увидите. Буду присутствовать две внешне идентичные по полю sb записи.
...
Рейтинг: 0 / 0
31.05.2017, 11:37
    #39462964
Картежник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите создать запрос
AkinaКартежникя скопировал обе строки в блокнот, и через поиск находится и другая.При чём тут блокнот? ВЫ хоть представляете, сколько при этом выполнено преобразований исходного значения?
Как я понимаю, проблема наблюдается для значений поля SB. Ну так выполните простейший запрос
Код: sql
1.
2.
3.
SELECT sb, COUNT(*) cnt
FROM `table`
GROUP BY sb


Если значения различаются - Вы это сразу увидите. Буду присутствовать две внешне идентичные по полю sb записи.

У меня выходит примерно вот так
---------------------------------
1,2 | Математика, Физика
3 | История, Математика
4 | Математика, Физика

сравниваю "Математика, Физика" из обоих строк, они полностью идентичны.
...
Рейтинг: 0 / 0
01.06.2017, 07:43
    #39463486
Картежник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите создать запрос
еще вопрос следующий
при слишком больших объемах не всегда срабатывает из за того что в строку группировки помещаются не все значения. в обычном режиме не через PHP решается через SET @@group_concat_max_len=какое то число;
но как сделать это в PHP?
...
Рейтинг: 0 / 0
01.06.2017, 07:58
    #39463495
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите создать запрос
Картежникв обычном режиме не через PHP решается через SET @@group_concat_max_len=какое то число;Фууу... ради решения локальной проблемы изменять глобальные установки сервера - моветон. Изменяйте на уровне сессии.

Картежниккак сделать это в PHP?Установить необходимое значение параметра для сессии (соединения) - либо в его свойствах, либо отдельной командой в рамках этого соединения.
...
Рейтинг: 0 / 0
01.06.2017, 08:35
    #39463513
Картежник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите создать запрос
AkinaКартежникв обычном режиме не через PHP решается через SET @@group_concat_max_len=какое то число;Фууу... ради решения локальной проблемы изменять глобальные установки сервера - моветон. Изменяйте на уровне сессии.

Картежниккак сделать это в PHP?Установить необходимое значение параметра для сессии (соединения) - либо в его свойствах, либо отдельной командой в рамках этого соединения.

можно пример?
...
Рейтинг: 0 / 0
01.06.2017, 10:54
    #39463627
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите создать запрос
...
Рейтинг: 0 / 0
01.06.2017, 12:01
    #39463717
Картежник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите создать запрос
Akina https://dev.mysql.com/doc/refman/5.7/en/using-system-variables.html
ну это понятно. а PHP как сделать? там не получается
...
Рейтинг: 0 / 0
01.06.2017, 13:19
    #39463786
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите создать запрос
Мануал прочитал? текст MySQL-запроса для установления требуемого значения нашёл? В MySQL работает нормально? Так теперь просто отошли текст этого запроса на сервер из PHP так же, как отсылаешь обычные запросы, которые не возвращают набор записей (INSERT/UPDATE/DELETE/DDL).
...
Рейтинг: 0 / 0
01.06.2017, 15:52
    #39463917
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите создать запрос
Ну так после установления сразу получи значение переменной и убедись, что оно изменилось...
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / помогите создать запрос / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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