gpt4 book ai didi

mysql - 为什么在 MySQL 中每个有效的 SELECT 都不是有效的 VIEW?

转载 作者:行者123 更新时间:2023-11-29 01:24:35 25 4
gpt4 key购买 nike

我想得到一个按天分组的计数。以下 SELECT 工作正常:

  SELECT COUNT( time_end ), 
time_end
FROM main
GROUP BY DAY( time_end )

我将其复制/粘贴到 phpmyadmin 的 VIEW 创建表单中,并收到此错误:

"#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'count(time_end)) AS SELECT count( time_end ) , time_end FROM main GROUP BY d' at line 4"

这是从 phpmyadmin 表单生成的完整 SQL:

CREATE ALGORITHM = UNDEFINED VIEW `count by day` (
time_end,
count( time_end )
) AS SELECT COUNT( time_end ),
time_end
FROM main
GROUP BY DAY( time_end )

怎么了?为什么有效的 SELECT 不会自动创建有效的 VIEW?谢谢。

最佳答案

不知道 phpMyAdmin 从哪里获取该语法。使用:

CREATE VIEW COUNT_BY_DAY AS
SELECT COUNT( time_end ),
time_end
FROM main
GROUP BY DAY( time_end )

请注意,您正在依赖 MySQL's hidden column functionality - time_end 值是任意的(不能依赖于随着可供选择的值数量的增加而始终返回相同的值)。它也无法移植到大多数数据库,您必须重新编写它。

此外,如果您不按月进行限制,则第 28 - 31 天的计数将会出现偏差。并非所有月份都有 31 天。

关于mysql - 为什么在 MySQL 中每个有效的 SELECT 都不是有效的 VIEW?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5426812/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com