我以为还会有另一个问题,但我找不到。在使用PHP的MySQL中,我通常用反引号封装字段名,以掩盖任何保留的名称或字符。但是,我的一位同事指出,这也可以使用方括号来实现。排除反引号与SQL Server不兼容的事实(显然),有什么区别?我应该使用哪个?
SELECT `username` FROM `users` SELECT [username] FROM [users]
SQL Server / T-SQL使用方括号(以及MS Access),而MySQL使用反引号。
据我所知,可以在文档中露面,或在测试中使用,方括号是 不是 有效的MySQL。因此,如果需要在SQL Server中将关键字作为表名括起来,请使用[],而在MySQL中请使用反引号,或在ANSI_QUOTES启用时使用双引号。
[]
ANSI_QUOTES
从文档中:
标识符引号是反引号(“`”):
mysql> SELECT * FROM `select` WHERE `select`.id > 100;
如果启用了ANSI_QUOTES SQL模式,则也可以在双引号中引起标识符的引用:
mysql> CREATE TABLE "test" (col INT); ERROR 1064: You have an error in your SQL syntax... mysql> SET sql_mode='ANSI_QUOTES'; mysql> CREATE TABLE "test" (col INT); Query OK, 0 rows affected (0.00 sec)