mysql5.7 3065エラーソリューション

次の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のの%」のような変数を表示。

おすすめ

転載: blog.51cto.com/phpme/2443158