Я установил 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
уникальным ключом? почему ошибка?