亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

sql_mode=only_full_group_by

sql_mode=only_full_group_by

PHP
拉莫斯之舞 2022-07-09 09:53:58
我試圖幫助某人在他的代碼上實現新功能;但我有這個錯誤Expression #4 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'br_interne.questionnaires_reponses.re_int' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_bySELECT `ch_ref` AS id, `ch_date_prevue` AS date, `ch_prestataire_terrassement_branchement` AS prestataire, `re_int` FROM (`questionnaires_contacts`) JOIN `chantiers_osr` ON `ch_ref`=`qc_chantier_id` JOIN `communes` ON `ch_insee`=`co_insee` JOIN `departements` ON `co_departement`=`de_id` LEFT JOIN `questionnaires_reponses` ON `re_questionnaire_contact` = `qc_id` AND re_question = 7 WHERE `de_id` = '78' AND `ch_date_prevue` >= '0000-00-00' AND `qc_chantier_type` = 'osr' AND `qc_invitation_envoyee` = '1' GROUP BY `qc_chantier_id`不幸的是,如果更改 SQL_mode 請求不起作用。(真的很奇怪,因為這段代碼在服務器上工作)。如果你有任何想法。即使使用 SQL 文檔,我也可以找到修改此請求的解決方案。提前非常感謝。
查看完整描述

2 回答

?
蝴蝶刀刀

TA貢獻1801條經驗 獲得超8個贊

ONLY_FULL_GROUP_BYMySql控制臺中刪除

mysql > SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));

或者

在下面的查詢中觸發PHPMyAdmin

 SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));


查看完整回答
反對 回復 2022-07-09
?
繁花不似錦

TA貢獻1851條經驗 獲得超4個贊

出現此錯誤是因為 Group By 中的列與 select 中的列不同。GROUP BY 將創建匯總列,因此在 select 中為其他列選擇什么值尚不清楚。

UserId | ModuleId 例如:對于具有userId 和 ModuleId 具有 1:N 映射的列的表。

說你跑select UserId, ModuleId from UserModule group by userId;

現在,應該為 userId 選擇哪個 moduleId?

因此,這個問題。因此,對于其他列,您有以下選擇:

  1. 刪除選擇中的其他列,

  2. 對其他列使用像 ANY_VALUE 這樣的聚合函數

MySQL 的這種強制措施是為了改進語義上不正確的查詢,而不是簡單地讓查詢以某種方式獲得輸出。

如果您仍想禁用該模式,您可以按照其他答案中的說明進行操作。


查看完整回答
反對 回復 2022-07-09
  • 2 回答
  • 0 關注
  • 158 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號