現在、開発ではmysql 5.7、本番では5.6を使用しています。開発中に group by を使用してクエリを実行するたびに、「エラー コード: 1055. Expression #1 of SELECT list is not in GROUP BY」のようなエラーが表示されます。
これがクエリです。
SELECT c.id, c.name, i.*
FROM countries c, images i
WHERE i.country_id = c.id
GROUP BY c.id; Fixed for 5.7;
SELECT c.id, c.name,
ANY_VALUE(i.url) url,
ANY_VALUE(i.lat) lat,
ANY_VALUE(i.lng) lng
FROM countries c, images i
WHERE i.country_id = c.id
GROUP BY c.id;
それを解決するために、5.7 ANY_VALUE の mysql 関数を使用しますが、主な問題は、mysql 5.6 では使用できないことです。
したがって、開発用のSQLステートメントを修正すると、本番環境でエラーが発生します。
mysql 5.6 の ANY_VALUE 関数のソリューションまたはポリフィルを知っていますか?