在这里阅读了几个关于SQL问题的答案和评论后,还听到我的一个朋友在一个禁止它们的政策的地方工作,我想知道在MySQL中使用反引号是否有任何问题.
那是:
SELECT `id`, `name`, `anotherfield` ...
-- vs --
SELECT id, name, anotherfield ...
Run Code Online (Sandbox Code Playgroud)
Ken*_*ric 152
使用反引号允许您使用替代字符.在查询编写中它不是一个问题,但如果假设你可以只使用反引号,我会认为它可以让你逃脱像荒谬的东西,如
SELECT `id`, `my name`, `another field` , `field,with,comma`
Run Code Online (Sandbox Code Playgroud)
这当然会产生命名严重的表.
如果你只是简洁,我没有看到它的问题,你会注意到你是否运行你的查询
EXPLAIN EXTENDED Select foo,bar,baz
Run Code Online (Sandbox Code Playgroud)
生成的警告将返回标记和完全限定的表名.因此,如果您正在使用查询生成功能和自动重写查询,反引号会使解析代码的任何事情变得更加困惑.
但是我认为,不是要求你是否可以使用反引号,而是应该有一个名称标准.它解决了更多"真正的"问题.
Ale*_*kov 57
反引号的唯一问题是它们不符合ANSI-SQL,例如它们在SQL Server中不起作用.
如果有可能将SQL移植到另一个数据库,请使用双引号.
nic*_*ckf 44
对我而言,在处理字段名称时始终使用它们是很有意义的.
如果你继续使用MYSQL没有任何错误,除了查询的视觉效果.但它们允许使用保留关键字或嵌入空格作为表和列名称.对于大多数数据库引擎而言,这是禁忌,并且将在以后阻止任何迁移.
至于易于阅读,许多人对SQL关键字使用上限,例如.
SELECT some_fied, some_other_field FROM whatever WHERE id IS NULL;
Run Code Online (Sandbox Code Playgroud)
小智 6
如果你问我,应该总是使用反引号.但是有一些原因可能导致团队不愿意使用它们.
好处:
缺点:
归档时间: |
|
查看次数: |
91511 次 |
最近记录: |