Ho aggiornato il mio sistema e ho installato MySql 5.7.9 con php per un'applicazione web su cui sto lavorando. Ho una query che viene creata in modo dinamico e quando viene eseguita nelle versioni precedenti di MySql funziona bene. Dall'aggiornamento a 5.7 ottengo questo errore:
L'espressione n. 1 dell'elenco SELECT non è nella clausola GROUP BY e contiene la colonna non aggregata 'support_desk.mod_users_groups.group_id' che non dipende funzionalmente dalle colonne nella clausola GROUP BY; questo è incompatibile con sql_mode = only_full_group_by
Nota la pagina del manuale per Mysql 5.7 sull'argomento Modalità server SQL .
Questa è la domanda che mi sta dando problemi:
SELECT mod_users_groups.group_id AS 'value',
group_name AS 'text'
FROM mod_users_groups
LEFT JOIN mod_users_data ON mod_users_groups.group_id = mod_users_data.group_id
WHERE mod_users_groups.active = 1
AND mod_users_groups.department_id = 1
AND mod_users_groups.manage_work_orders = 1
AND group_name != 'root'
AND group_name != 'superuser'
GROUP BY group_name
HAVING COUNT(`user_id`) > 0
ORDER BY group_name
Ho fatto un po 'di google sul problema, ma non capisco only_full_group_by
abbastanza per capire cosa devo fare per risolvere la query. Posso semplicemente disattivare l' only_full_group_by
opzione o c'è qualcos'altro che devo fare?
Fammi sapere se hai bisogno di maggiori informazioni.
not a GROUP BY expression
" Questo è tutto. Potrebbero anche avere un codice numerico di errore e nessun messaggio.