使用反引号/反引号进行mysql查询

tre*_*nik 20 mysql sql

我用反引号构建MYSQL查询.例如,

SELECT `title` FROM `table` WHERE (`id` = 3)
Run Code Online (Sandbox Code Playgroud)

而不是:

SELECT title FROM table WHERE (id = 3)
Run Code Online (Sandbox Code Playgroud)

我认为我从Phpmyadmin导出中得到了这种做法,据我所知,甚至Rails都会生成这样的查询.

但是现在我看到越来越少的查询构建得像这样,而且,在查询中使用反引号代码看起来更复杂,更复杂.即使使用SQL辅助函数,没有它们也会更简单.因此,我正考虑将它们抛在身后.

我想知道这种做法是否还有其他含义,例如SQL(我的情况下是MySQL)解释速度等等.你怎么看?

Jam*_*nen 21

反引号还允许表/列名称中的空格和其他特殊字符(显然除了反引号).它们不是绝对必要的,但对安全是一个好主意.

如果您遵循合理的规则来命名表和列,则不需要反引号.


小智 16

每当我看到这个讨论时,我都试图游说他们的内容,因为,好吧,答案已经隐藏在这里,虽然没有进一步思考,但是狡猾地眨了眨眼.当我们错误地使用关键字作为字段或表名时,我们可以通过各种方法避免混淆,但只有敏锐地意识到后退"才能获得更大的好处!

sql语句中的每个单词都是通过整个关键字哈希表运行来查看是否存在冲突,因此,通过告诉编译器,你已经完成了查询,嘿,我知道我在做什么,你没有需要检查这些单词,因为它们代表表和字段名称.速度和优雅.

干杯,布拉德

  • 加速SQL解析器是一个完全似是而非的理由.您期望SQL解析器获得的加速完全是虚构的.如果您认为有加速,请测量并量化.否则,这是不必要的,因此不成熟的优化. (7认同)