Konstantin
SELECT id FROM my_table GROUP BY some_foreign_key ORDER BY created_by DESC
Konstantin
вот это раньше работало, а теперь перестало, пока не отключишь ONLY_FULL_GROUP_BY
Konstantin
и я вяло пытаюсь понять, _зачем_ они так сделали
Konstantin
отключить не проблема
Alex
может медленная хрень?
Konstantin
не знаю, но это не очень-то и важно
Павел
ONLY_FULL_GROUP_BY
Генерирует ошибку в запросах, в которых GROUP BY имеет не полный список не агрегированных параметров из SELECT и HAVING.
Юрий
Чтобы все поля перечислял в селекте по которым группировать собрался
Юрий
Оно же все равно выбирается
Юрий
Так указывай сразу
Павел
https://dev.mysql.com/doc/refman/5.7/en/faqs-sql-modes.html#faq-mysql-what-default-mode
Konstantin
угу, все равно выбирается
Konstantin
а если хотелось колоночку одну выбрать?
Konstantin
и использовать эту выборку во вложенном запросе?
Ivan
Konstantin
кстати, не получилось
Konstantin
SELECT id, job_id, created_at
FROM jobtool_revision
GROUP BY job_id
ORDER BY created_at ASC
Konstantin
все равно триггерит ошибку
Konstantin
оно как-то там определяет функциональную зависимость
SiZE
Konstantin
в доке сказано, что раньше оно это плохо умело (или вообще не умело - не помню), а теперь умеет и вот нате вам дефолт
SiZE
в postgre, oracle, mssql так нельзя например
Ivan
У меня есть ощущение что за это MySQL ругали, что она позволяет такую вольность. Если есть примеры БД которые позволяют не делать как MySQL без ONLY_FULL_GROUP_BY, напишите. PostgreSQL не даёт такого сделать.
Ivan
Насколько я понимаю, id там будет тупо рандомный, см. первый ответ https://stackoverflow.com/questions/1066453/mysql-group-by-and-order-by
Ivan
Это до версии 5.7.5 был легальный сспособ стрелять себе в ноги
Konstantin
id не рандомный, потому что сортировка
Konstantin
ну вот есть у меня "вакансии", а у них есть "ревизии", связь 1-N
Konstantin
и я хочу получить по каждой вакансии самую свежую ревизию
Konstantin
я понимаю, что GROUP BY не совсем для этого
Konstantin
кстати, как это можно еще сделать, но чтобы не через задницу?
V
V
Ivan
id не рандомный, потому что сортировка
Если я верно понял этот коммент, то группировка происходит после отбрасывания строк, и происходит по результирующему набору, а id таки рандомные
Using non-aggregate columns in a SELECT with a GROUP BY clause is non-standard. MySQL will generally return the values of the first row it finds and discard the rest. Any ORDER BY clauses will only apply to the returned column value, not to the discarded ones.
Alex
а через дистинкт не?
Alex
типа SELECT DISTINCT job_id, title FROM jobtool_revision ORDER BY created_at ASC
Alex
@beowulfenator
Alex
должно проканать
Alex
если есть индекс то вообще должно быть быстро по логике вещей
Konstantin
Konstantin
SiZE
Странные вещи в этом чате
SiZE
Вопрос на засыпку. ORDER BY работает с группировкой? 🤡
Konstantin
ну уже ж вроде выяснили
Konstantin
что да, но уже после группировки
Konstantin
то есть фокусы, которые раньше работали, теперь работать перестали
Konstantin
спасибо всем участникам дискуссии :)
Konstantin
вот тут все весьма доходчиво оказалось:
Alex
спасибо на хлеб не намажешь)
Konstantin
https://stackoverflow.com/questions/1066453/mysql-group-by-and-order-by
Anonymous
Есть кто?
Ivan
Не-а, нету никого.
Lee
Кто из здесь присутствующих юзал hscstudio cart?
Dmytro 🇺🇦
Илюха, реализуй кастомно :)
Lee
Мне стало интересно в чём соль метода lock() у этого экстеншна и почему там ошибка на ошибке в коде. Как будто его левой ногой написали, не тестили и поддерживать не хотят.
Andrew White
Вот где ты вечно эти либы находишь?
Niko
Привет! Кто-нибудь знает, как в js можно передать в hiddenInput не строку из выбранных checkbox, а чтоб в hiddenInput на сервер пришел массив?
Niko
Здесь массив [1,2]
console.log($('#grid').yiiGridView('getSelectedRows'))
Делаю
$('#post_ids').val($('#grid').yiiGridView('getSelectedRows'))
И получаю строку '1,2'
console.log($('#post_ids').val())
Maxim
Всем привет! Ребят, как лучше сделать следующее? Есть несколько веб-приложений, абсолютно одинаковых по коду, различающихся лишь контентной частью (фразы, заголовки кнопок, контент страниц, пара изображений). Надо как-то сделать так, чтоб эти различия хранились локально. Думал использовать стандартный i18n, но оригинальные фразы могут меняться. Пришла в голову идея использовать вместо оригинальных фраз какие-то обозначения вроде FRONTEND_START_BUTTON_LABEL и потом сделать перевод на исходный язык, но мне кажется это каким-то костылём.
Niko
@max_esl можно использовать в i18n DbManager и в каждом проекте подключаться к своей бд
Maxim
Просто помимо фраз у меня ещё есть куски html кода, и использовать i18n для этого мне кажется не очень хорошей идеей.
Maxim
Получается, что в качестве оригинальной фразы будет выступать кусок html кода, мне это не очень нравится.
Niko
контент переводить нужно без html. Как потом верстку править, через админку или файл перевода?
Maxim
Вот это меня и смущает. Но городить CMS из-за двух страниц с текстом, разбитым на параграфы - избыточно.
Niko
не понял про CMS, но я бы один код в нескольких проектах не использовал. В итоге где-то нужно будет что-то незначительно поменять, а где-то оставить, и нужно будет все куда-то выносить
Maxim
Под CMS я имел ввиду средство для создания, редактирования и удаления страниц сайта. В моей ситуации оно избыточно (всего две-три страницы с небольшим html-кодом, и новых страниц вероятнее всего не будет ещё долго). Проекты одного заказчика и если и будет что-то меняться, то везде сразу, это 100%.
Maxim
Мне изначально не очень понятна идея использовать фразу на оригинальном языке в качестве исходного значения для переводов. Ведь если поменяется оригинальная фраза, остальные языки останутся вообще без перевода этой фразы (ведь старое значение браться не будет из-за того что фраза поменялась). Так и появилась идея использовать код (неизменный) вместо фразы и делать перевод "с исходного языка на английский".
Maxim
Возможно. Можешь сказать, в чём именно моё непонимание заключается? Принцип я понял, но мне кажется, что есть какой-то нюанс.
Maxim
это я понял, что тут непонятного? )
Maxim
а если завтра там будет t('Здарова'), то все переводы накроются и на всех языках будет "Здарова", а мне нужно поменять только в исходном.
Maxim
то есть перевод с русского на русский. это ужасно, имхо. такой же костыль как и коды, которые я предлагал выше.
Evgenij
всем привет, кто нибудь делал "время последнего логина пользователя", как варианты есть для реализации ?
Maxim
пробежался по доке и не нашёл отличий от Yii t()
Evgenij
есть там EVENT_AFTER_LOGIN
Niko
Не срабатывает TimestampBehavior для промежуточной теблицы
$userModel->link('posts', $post)
Есть ли вариант, кроме как задать явно в массиве третьим параметром?
Konstantin
грустно все со временем последнего логина
Konstantin
потому что если там "remember me", то событие долго вызываться не будет
Konstantin
короче событие возникает, только если пароль ввести
Maksim N
А где смотреть документацию по js в yii. Ведь там как-то виджеты должны поддерживать события и т.д. Или документация по Bootstrap сойдет. https://getbootstrap.com/docs/3.3/ это она? Что-то как-то она не привычная.