次のSQL
SELECT DISTINCT questionid,questiontype
FROM x2_questions AS questions,x2_quest2knows AS quest2knows
WHERE find_in_set(quest2knows.qkknowsid,:knowsid)
AND quest2knows.qktype = 0
AND quest2knows.qkquestionid = questions.questionid
AND questions.questionstatus = 1
ORDER BY questionparent asc,questionsequence
エラーメッセージランタイム
ORDER BY句の式の第1位は、SELECTリストにない、参照列SELECTリストにない「pe6.questions.questionparent」; これは、DISTINCTと互換性がありません
原因:
DISTINCTを使用する場合mysql5.7バージョンは、実行できないSQLステートメントで3065のエラーと秩序を報告します。これは、より厳格な以前のバージョンの文法構文の要件よりも5.7バージョンによるものです。
ソリューション:
MySQLは、セキュリティモード、そのsql_modeのを修正します。
ステップ:
1.mysql、端末設定情報を確認するには、次のコマンドを入力します
'%のsql_modeのの%'のようなショーの変数 、
以下の情報を参照することができ、デフォルト
|のsql_mode | ONLY_FULL_GROUP_BY、STRICT_TRANS_TABLES、NO_ZERO_IN_DATE 、NO_ZERO_DATE、ERROR_FOR_DIVISION_BY_ZERO、NO_AUTO_CREATE_USER、NO_ENGINE_SUBSTITUTION
2.設定sql_modeのONLY_FULL_GROUP_BYは削除
でのMySQLの設定ファイルmy.cnfファイル(Linux)をmysqldのsql_model設定オプションを追加または変更を推奨/my.iniファイル(ウィンドウ)
sql_modeの= STRICT_TRANS_TABLES、NO_ZERO_IN_DATE、NO_ZERO_DATE、ERROR_FOR_DIVISION_BY_ZERO、NO_AUTO_CREATE_USER、NO_ENGINE_SUBSTITUTION
3.再起動mysqlの開始
4.確認し
、次のコマンドでmysql端子を入力し、結果を表示します。
「%のsql_modeのの%」のような変数を表示。