Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

Mikegk's avatar

Raw Count Group By Query

Hi guys,

this query works, as I execute it on phpmyadmin, but it won't via laravel:

$query = "SELECT
                        COUNT(*) AS visits,
                        users.id AS userid,
                        users.name,
                        users.slug,
                        user_visits.id,
                        user_visits.id_user,
                        user_visits.id_visitor,
                        user_visits.ip_address,
                        user_visits.created_at
                    FROM
                        user_visits
                    LEFT JOIN
                        users ON user_visits.id_user = users.id
                    WHERE
                        user_visits.ip_address = ?
                    GROUP BY
                        user_visits.id_user
                    ORDER BY
                        user_visits.created_at
                    DESC
                        LIMIT 1000";
        $grouped_visits = DB::select($query, [$visit->ip_address]);

I already set strict mode to false (config/database.php) which did not work.

Any ideas?

0 likes
2 replies
Mikegk's avatar

Laravels Response looks like so

SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #5 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'db.user_visits.id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by (SQL: SELECT COUNT(*) AS visits, users.id AS userid, users.name, users.slug, user_visits.id, user_visits.id_user, user_visits.id_visitor, user_visits.ip_address, user_visits.created_at FROM user_visits LEFT JOIN users ON user_visits.id_user = users.id WHERE user_visits.ip_address = XXX GROUP BY user_visits.id_user ORDER BY user_visits.created_at DESC LIMIT 1000)

?

Please or to participate in this conversation.