[英]Grails: using ANY_VALUE() in criteria query to avoid `only_full_group_by` in MYSQL version 5.7+
我最近升級從5.6 MySQL來5.7.14,而現在其使用的所有標准查詢groupProperty
與類似以下提到的一個錯誤而失敗:
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Expression #3 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'test_dev.this_.user_id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
這是由於MySQL處理GROUP BY
的方法目前發生了變化, 這里提到了這一點 。
因此,根據這些更改日志,我們可以通過以下方式解決此問題:
ONLY_FULL_GROUP_BY
,我認為這不是一個好方法。 ANY_VALUE()
來引用非ANY_VALUE()
列。 但是沒有這樣的選項在grails標准查詢中使用any_value()
。 將查詢更新為低級SQL語句或使用HQL可能有所幫助,但這需要在多個位置進行更改。
那么,有沒有更好的方法可以用來處理上述情況?
如果ANY_VALUE不可用,您可以簡單地使用MIN
或MAX
。
話雖如此,我寧願調查每個查詢並從修復GROUP BY
部分開始。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.