在阅读了一些有关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
返回的生成警告将带有反引号 和 完全限定的表名。因此,如果您使用查询生成功能和自动重写查询功能,则反引号会使解析您的代码的任何事情都不会那么混乱。
不过,我认为,与其强制要求您是否可以使用反引号,不如说它们应该有一个名称标准。它解决了更多的“实际”问题。