当前位置: 首页 > 面试题库 >

在字段名称周围使用反引号

后凯捷
2023-03-14
问题内容

在阅读了一些有关SQL问题的答案和评论,并听到我的一个朋友在一个禁止他们使用的政策的地方工作之后,我想知道在MySQL的字段名周围使用反引号是否有问题。

那是:

SELECT `id`, `name`, `anotherfield` ...
-- vs --
SELECT id, name, anotherfield ...

问题答案:

使用反引号允许您使用其他字符。在查询编写中,这不是问题,但是如果假设您可以使用反引号,那么我认为它可以让您摆脱诸如

SELECT `id`, `my name`, `another field` , `field,with,comma`

当然哪个会生成命名错误的表。

如果您只是为了简洁起见,我认为它没有问题,那么您会注意是否按如下方式运行查询

EXPLAIN EXTENDED Select foo,bar,baz

返回的生成警告将带有反引号 完全限定的表名。因此,如果您使用查询生成功能和自动重写查询功能,则反引号会使解析您的代码的任何事情都不会那么混乱。

不过,我认为,与其强制要求您是否可以使用反引号,不如说它们应该有一个名称标准。它解决了更多的“实际”问题。



 类似资料:
  • 问题内容: 在这里打印“ Foo”的方式是什么?在此示例中,打印的是“字符串”。 http://play.golang.org/p/ZnK6PRwEPp 问题答案: 你要。上的方法将返回一个结构,该结构描述该字段,其中包括名称以及其他信息。 无法检索代表特定字段值的字段名,因为这是包含结构的属性。

  • 问题内容: 如果json字段包含冒号(:),我们如何解析?像这样: 实际上,我想知道如何使用诸如restsharp之类的库来进行映射? 问题答案: 使用Json.Net 要么

  • 问题内容: 我有一个非常不理想的情况,要求我反序列化JSON,其中值是JSON.NET的字段名称。假设我具有以下结构正确的JSON: 使用JSON.NET将其反序列化为CLR对象非常容易: 但是,在当前情况下,我有以下可怕的JSON,就值而言,它等效于上述JSON: 如您所见,field不是数组。这是一个包含其他值作为对象的对象,其唯一键作为其字段名称(这太可怕了)。使用JSON.NET 将JSO

  • 问题内容: 我面临着要与MySQL 5.0一起使用而编写的旧系统,现在需要将其迁移到MysQL 5.5(要求)。我发现一列名为,这在MySQL 5.5中似乎是系统单词。因此,我所有包含此列的Hibernate查询都给出语法错误: 由以下原因引起:java.sql.BatchUpdateException:您的SQL语法有错误。检查与您的MySQL服务器版本相对应的手册,以获取在’maxvalue附

  • 问题内容: 我遇到一种情况,我试图在Postgres中创建一个名为“ user”的表,由于Hibernate没有将表名放在引号中而引发了错误: 尽管指定了它应在DataSource.groovy中使用PostgreSQLDialect,但是: 在处理Postgres时,如何配置Hibernate在表名周围加引号? 问题答案: 您可以在带反引号的块中引用表名。Hibernate会将其转换为基于Dia

  • 问题内容: 在Java中能否从实际字段中获取字符串中的字段名称?喜欢: PS:我 不是 在寻找字段的类/类名,也不是从String中的名称获取Field。 编辑:当我查看它时,我可能不需要一种获取字段名称的方法,该Field实例(来自字段的“代码名称”)就足够了。[例如] Java本身可能没有想要的东西。我将看一下ASM库,但最后我可能最终会使用字符串作为字段的标识符:/ EDIT2:我的英语不好