ОШИБКА 1055 Я исправил, но почему он выдал ошибку на первом месте? - PullRequest
0 голосов
/ 31 августа 2018

Я установил username как уникальный ключ, а не ноль

CREATE TABLE IF NOT EXISTS `users`(
    `id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
    `username` VARCHAR(255) NOT NULL,
    `created_at` TIMESTAMP DEFAULT NOW(),
    PRIMARY KEY (`id`),
    UNIQUE KEY `uk_uname` (`username`)
);

Но при попытке выяснить, какой самый популярный день, когда люди заходят в систему, я получил ошибку.

SELECT  `username`,
        DAYNAME(`created_at`) AS `day` 
    FROM `users`
        GROUP BY `day`;

"users.username, которое функционально не зависит от столбцов в предложении group by"

поэтому я искал через stackoverflow, и большинство людей говорили, что нужно отключить ONLY_FULL_GROUP_BY, но я не хочу его отключать, почему я не могу научиться его использовать?

чтобы код работал, мне нужно было добавить ANY_VALUE( имя пользователя ) все заработало.

ответ в другом посте: «Для других случаев использования: вам не обязательно отключать ONLY_FULL_GROUP_BY. В случае, подобном этому, согласно документам mysql:« Этот запрос недействителен, если name не является первичным ключом t или уникальным столбцом NOT NULL. В этом случае функциональная зависимость не может быть выведена, и возникает ошибка: ""

НО я не сделал username уникальным ключом? почему ошибка?

...