Используйте ANY_VALUE()
для ссылки на неагрегированный столбец.
Из MySQL 5.7 docs :
Вы можете добиться такого же эффекта без отключив
ONLY_FULL_GROUP_BY
, используяANY_VALUE()
, чтобы ссылаться на неагрегированный столбец....
Этот запрос может быть недействительным с включенным
ONLY_FULL_GROUP_BY
, поскольку столбец неагрегированных адресов в select list не указан вGROUP BY
:SELECT name, address, MAX(age) FROM t GROUP BY name;
...
Если вы знаете, что для данного набора данных каждое значение имени на самом деле однозначно определяет адресное значение, адрес эффективно функционально зависит от имени. Чтобы сообщить MySQL о принятии запроса, вы можете использовать функцию
ANY_VALUE()
:SELECT name, ANY_VALUE(address), MAX(age) FROM t GROUP BY name;
У меня просто была аналогичная проблема с моим приложением. У меня возникла проблема после миграции БД, после того, как я попробовал много вариантов, тот, который мне помог, был следующим:
heroku restart
(Использование Heroku toolbelt для mac)
Найденное решение для меня здесь: Ошибка Heroku + node.js (веб-процесс не смог привязываться к $ PORT в течение 60 секунд после запуска)
В моем случае мое приложение разбилось потому что я был жестко настроен PORT, вместо того, чтобы использовать порт, который набор героев динамически, к которому можно получить доступ с помощью process.env.PORT
app.listen(process.env.PORT || 3000, function(){
console.log("Express server listening on port %d in %s mode", this.address().port, app.settings.env);
});
в моем случае, добавив process.env.PORT || 3000
к моему скрипту http-сервера, разрешенному. В моем журнале heroku сообщается об ошибке «H20» и 503 http status.
В моем случае я получил эту ошибку, потому что я отказываюсь добавить Procfile в мое приложение js для узла и мой «основной»: «app.js» первоначально указывал на другой файл js в качестве основного. так что делаю эти chnages, это исправлено для меня
Также проверьте соединение с базой данных. Я забыл изменить соединение с базой данных с localhost, и это разбило мое приложение, когда оно было нажато на герою.
В моем случае я нашел ту же ошибку, потому что есть разница версий узла и npm на моей локальной машине и определена в версии package.json.
"engines": {
"node": "0.8",
"npm": "1.2.x"
}
, когда я проверяю использование
node --version : v0.10.41
npm --version : 1.4.29
, когда я обновляю свой пакет.json до
"engines": {
"node": "0.10.41",
"npm": "1.4.29"
}
Он отлично работает:)
Я столкнулся с этой же проблемой, и ни один из ответов выше не помог мне. То, что я сделал, было запущено:
node --version
, а в пакете. Json добавить раздел движков с вашей версией узла:
{
"name": "myapp",
"description": "a really cool app",
"version": "1.0.0",
"engines": {
"node": "6.11.1"
}
}
У меня была опечатка
const PORT = process.env.PORT||'8080';
, которая использовалась как
const PORT = process.env.port||'8080';
Я получил ту же ошибку выше, что и «ошибка приложения» и ошибка H10, и журналы приложений heroku не показывают много информации, связанной с причинами ошибки. Затем я перезапустил dynos в heroku, а затем он показал ошибку, говорящую о дополнительной фигурной скобке в одном из файлов index.js в моей настройке. Проблема была исправлена после ее удаления и перераспределения приложения на герою.
Надеюсь, это будет полезно для кого-то, кто сталкивается с той же проблемой.
В моем случае мой Procfile указывал на неправильный файл (bot.js, который я ранее использовал), поэтому, как только я его обновил, ошибка исчезла.