問題を見つける 最近MySQLをMySQL 5.7にアップグレードした後、次のようなクエリでグループ化を実行すると、 SELECT *, count(id) as count FROM `news` GROUP BY `group_id` ORDER BY `inputtime` DESC LIMIT 20 次のエラーが報告されます: SELECT リストは GROUP BY 句内になく、GROUP BY 句内の列に機能的に依存しない非集計列 'news.id' が含まれています。これは sql_mode=only_full_group_by と互換性がありません。 原因分析 その理由は、mysql 5.7 モードにあります。 ONLY_FULL_GROUP_BY はデフォルトで有効になっています。 ONLY_FULL_GROUP_BY は MySQL が提供する sql_mode であり、SQL ステートメントの GROUP BY 句の有効性をチェックするために使用されます。 http://dev.mysql.com/doc/refman/5.7/en/sql-mode.html#sqlmode_only_full_group_by これは 後で、並べ替え条件の「順序」フィールドもグループ化に含まれている必要があり、並べ替えフィールドもグループ化フィールドから取得されることが分かりました。 わからなかったら行って見てください。 解決: 1. SQL を正常に実行するには、ONLY_FULL_GROUP_BY を削除します。 2. ONLY_FULL_GROUP_BY が選択されていない場合は、選択フィールドがすべてグループ化条件に含まれている必要があります (関数を含むフィールドを除く)。 (この問題が order by に遭遇したときにも発生する場合は、同様に、order by フィールドも group by に含まれている必要があります)。 3. この関数は、ONLY_FULL_GROUP_BY SQL モードが有効になっている場合の GROUP BY クエリで役立ちます。これは、MySQL が、有効であるとわかっているクエリを MySQL が判断できない理由で拒否する場合に便利です。関数の戻り値と型は、その引数の戻り値と型と同じですが、関数の結果は ONLY_FULL_GROUP_BY SQL モードではチェックされません。 上記のSQL文は次のように記述できます。 SELECT ANY_VALUE(id) as id、ANY_VALUE(uid) as uid、ANY_VALUE(username) as username、ANY_VALUE(title) as title、ANY_VALUE(author) as author、ANY_VALUE(thumb) as thumb、ANY_VALUE(description) as description、ANY_VALUE(content) as content、ANY_VALUE(linkurl) as linkurl、ANY_VALUE(url) as url、ANY_VALUE(group_id) as group_id、ANY_VALUE(inputtime) as inputtime、count(id) as count FROM `news` GROUP BY `group_id` ORDER BY ANY_VALUE(inputtime) DESC LIMIT 20 私は3番目の方法を選択しました。 要約する 上記はこの記事の全内容です。この記事の内容が皆さんの勉強や仕事に一定の参考学習価値を持つことを願っています。ご質問があれば、メッセージを残してコミュニケーションしてください。123WORDPRESS.COM を応援していただきありがとうございます。 以下もご興味があるかもしれません:
|
<<: Linux 編集の開始、停止、再起動の Springboot jar パッケージ スクリプトの例
>>: ボタンの権限判定を実装するためのVueカスタムv-has命令
今日の Web デザインでは、非常に大きなフォントが表示される傾向があります。これらのオープンソース...
1. テーブル構造 2. 表データ 3. クエリのteacher_nameフィールドは空にすることは...
ネットワーク セキュリティは非常に重要なトピックであり、サーバーはネットワーク セキュリティにおける...
<br />最も実用的なものを選んで話しましょう。まず、勤務先の都市を慎重に選ぶ必要があ...
関連記事:初心者が学ぶ HTML タグ (1)初心者は、いくつかの HTML タグを理解することで ...
Nexus のデフォルトのリモートリポジトリは https://repo1.maven.org/ma...
1. コンテナにnginxサービスをデプロイするcentos:7 イメージはコンテナを実行し、このコ...
目次1. JavaScript オブジェクト1).配列オブジェクト2).ブールオブジェクト3).日付...
目次1. Docker の 2375 ポートを別のポートに変更します。これは一時的な対策にすぎません...
最近、Yahoo の 34 の黄金律を読み、ウェブサイトのパフォーマンスを最適化する方法を学びました...
現在、Docker には中国向けの公式ミラーがあります。詳細については、https://www.do...
テーブルを美しくするために、行ごとに異なる境界線の色を設定できます。基本的な構文<TR 境界線...
コードをコピーコードは次のとおりです。 <html> <ヘッド> <m...
123WORDPRESS.COM HTML チュートリアル セクションに戻るには、ここをクリックして...
この記事では、MySQL 5.7のインストールと設定のチュートリアルを参考までに紹介します。具体的な...