0
found在查詢中發現sql_mode = only_full_group_by錯誤。我嘗試了很多方法來修復它。changed sql_mode=''
.still我得到這個錯誤。sql_mode = only_full_group_by查詢語句
PDOException:SQLSTATE [42000]:語法錯誤或訪問衝突:SELECT列表1055表達#1不處於GROUP BY子句和包含非聚集列「intranet.a.tagid」,這並不功能依賴於列在GROUP BY子句中;這是不兼容的sql_mode = only_full_group_by:
我給表中的字段
SELECT a.tagid,b.tagword,a.metric
from nextag_metrics a
LEFT JOIN nextag_words b ON a.tagid=b.id
WHERE b.tagword is not NULL
AND type='filedepot'
OR groupid in (2931,2938,2941)
OR userid in (1)
OR categoryid in (2,3,4,5,6,8,9,10,11)
GROUP BY b.tagword
ORDER BY b.tagword ASC
如何修復查詢本身?您需要按未彙總的所有投影字段進行分組。如果你不明白爲什麼,你可能還沒有真正想到你想要解決的問題。 – Sebas
GROUP BY無效,會在較新版本的MySQL上引發錯誤(除非在兼容模式下),並且在較舊的MySQL版本上返回不可預知的結果。一般的GROUP BY規則說:如果指定了GROUP BY子句,SELECT列表中的每個列引用必須標識一個分組列或者是一個set函數的參數! – jarlh
'select @@ sql_mode;'說什麼? – Alexey