关于mysql别名有什么特别的规定吗?

问题描述 投票:0回答:2

最近,我在学习MySQL的时候,按照这个特别的指南。https:/www.mysqltutorial.orgmysql-join

按照教程中的指示设置了数据库和表。当运行以下代码时,结果出现了语法错误。

SELECT 
    m.member_id, 
    m.name member, 
    c.committee_id, 
    c.name committee
FROM
    members m
INNER JOIN committees c 
	ON c.name = m.name;

ERROR 1064 (42000): 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 ', 
    c.committee_id, 
    c.name committee
FROM
    members m
INNER JOIN commi' at line 3

通过一些实验,这个语法错误可以通过将别名成员改成其他东西或者在它周围加引号来解决。然而,我不清楚这些解决方案是如何工作的,为什么。PS:我使用的MySQL的版本是Ver 8.0.19。

mysql alias
2个回答
1
投票

member隐语 在某些特定的MySQL版本上:它在8.0.17版本中变成了保留字,然后似乎MySQL的设计者改变了主意,在8.0.19版本中反过来了。

所以你需要改变别名(我建议你这么做),或者用反引号包围它:这样就会把它变成一个引号标识符,它永远不会与保留字冲突,如 文件中解释:

标识符可加引号或不加引号。如果一个标识符含有特殊字符或为保留字,则在提及该标识符时必须引用。

此外,还有。

标识符的引号是回车键(`)。


1
投票

member 是一个 保留字所以,你必须用单引号来封装mmmber。

SELECT 
    m.member_id, 
    m.name 'member', 
    c.committee_id, 
    c.name committee
FROM
    members m
INNER JOIN committees c 
    ON c.name = m.name;

另查 什么时候在MySQL中使用单引号、双引号和反引号?

© www.soinside.com 2019 - 2024. All rights reserved.