如何在MySQL中选择带空格的列名

ehp*_*ehp 78 mysql sql

我正在开发一个项目,其他开发人员创建了一个列名为的表'Business Name'.这是两个单词之间的空格.如果我SELECT使用"商家名称" 运行声明,则表示没有名称为"商家"的列.

我怎么解决这个问题?

tad*_*man 131

通常,第一步是不首先执行此操作,但如果已经完成,则需要使用正确引用列名称:

SELECT `Business Name` FROM annoying_table
Run Code Online (Sandbox Code Playgroud)

通常这些类型的东西是由使用过类似Microsoft Access的人创建的,并且总是使用GUI来完成他们的工作.

  • 这是因为它不是单引号而是*tick*符号,您通常可以在数字1左侧的键盘上找到它们. (12认同)
  • 有三种引号,单引号`'`,double`"`和后退`\``.在MySQL中,前两种是等价的,可以互换使用.在其他平台上并非总是如此,特别是Postgres对它们的处理方式不同.反引号仅用于数据库或列名转义. (4认同)
  • @Gathide 在表示/应用程序层中执行此操作,而不是在数据库中。数据库中的名称应该简洁、简短但有意义,并避免任何与关键字冲突的问题,以避免必须转义它们。您可以在报告中添加*您想要的任何内容,以用户想要的任何语言*。 (2认同)

小智 15

如果双引号不起作用,请尝试将字符串包含在方括号内.

例如:

SELECT "Business Name","Other Name" FROM your_Table
Run Code Online (Sandbox Code Playgroud)

可以改为

SELECT [Business Name],[Other Name] FROM your_Table


Sau*_*abh 12

您需要使用反引号而不是单引号:

单引号'Business Name'- 错了

反击`Business Name`- 正确


kzt*_*ztd 5

我来到这里时遇到了 MS Access 问题。

反引号对 MySQL 很有用,但它们会产生奇怪的错误,例如 MS Access 中的“无效查询名称:Query1”,仅对于 MS Access,请使用方括号:

它应该看起来像这样

SELECT Customer.[Customer ID], Customer.[Full Name] ...
Run Code Online (Sandbox Code Playgroud)