gpt4 book ai didi

mysql - 为什么把`放在列周围?

转载 作者:可可西里 更新时间:2023-11-01 06:31:24 24 4
gpt4 key购买 nike

在某些代码中,我看到人们将 ` 放在他们的列周围。为什么?与不使用它们有什么区别吗?

SELECT `players`.`name`, `houses`.`id` FROM `players`, `houses` 
WHERE `houses`.`owner` = `players`.`id`

最佳答案

使用反引号允许保留字用作列名或表名,例如

SELECT `values` FROM `references` WHERE `precision` > 0

非字母数字的名称也必须包含在“`”之间,例如

SELECT `user name` FROM `registered users` WHERE `total score` > 0

参见 http://dev.mysql.com/doc/refman/5.1/en/identifiers.html了解详情。


我认为当动态使用这些名称时经常会看到这种情况,例如(人工例子)

mysql_prepare_statement("SELECT `%q` FROM `%q` WHERE `%q` > 0", col, tbl, col_cond);

在这种形式下,任何种类的列名和表名都可以被相同地处理,并且可以避免恶意注入(inject)尝试,例如col = "1; DROP TABLE users--"

关于mysql - 为什么把`放在列周围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3262667/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com