MySQL创建视图错误

MySQL创建视图错误,mysql,sql,Mysql,Sql,下面是我使用MySQL/MySQL工作台创建视图和相关错误消息的语句。我尝试了“从何处选择”功能。如有任何提示,我们将不胜感激 CREATE VIEW [Products Above Average Price] AS SELECT ProductName,Price FROM Products WHERE Price>(SELECT AVG(Price) FROM Products) 错误代码:1064。您的SQL语法有错误;查看与您的MySQL服务器版本对应的

下面是我使用MySQL/MySQL工作台创建视图和相关错误消息的语句。我尝试了“从何处选择”功能。如有任何提示,我们将不胜感激

CREATE VIEW [Products Above Average Price] AS            
SELECT ProductName,Price
FROM Products
WHERE Price>(SELECT AVG(Price) FROM Products)
错误代码:1064。您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,了解如何使用接近“[高于平均价格的产品]的正确语法?在第1行选择“产品名称,价格”

您必须使用ANSI标准双引号,而不是[]方括号

CREATE VIEW "Products Above Average Price" AS 
SELECT ProductName,Price
FROM Products
WHERE Price>(SELECT AVG(Price) FROM Products)

下面是MySQL中视图创建的样子

Create View `MyViewName` as 
    Select
        col1, col2, col3
    From
        myTable T
在您的例子中,出现问题的原因是[],MySQL中没有使用[]。将您的查询替换为

CREATE VIEW `Products Above Average Price` AS            
    SELECT ProductName,Price
    FROM Products
    WHERE Price>(SELECT AVG(Price) FROM Products)
复制的评论 ANSI SQL对分隔标识符使用双引号,例如

CREATE VIEW "Products Above Average Price" AS...
CREATE VIEW [Products Above Average Price] AS...
MS SQL Server还将[]作为特定于供应商的标识符分隔方式,例如

CREATE VIEW "Products Above Average Price" AS...
CREATE VIEW [Products Above Average Price] AS...
MySQL有背面标记,例如

CREATE VIEW `Products Above Average Price` AS...

MySQL使用回勾而不是[]。适合我,谢谢@jarlh。如果你能给出一个正式的答案,我可以帮你把这个答案标记出来,让其他遇到同样问题的人受益已经有一个有用的问题: