开发者社区> 问答> 正文

SQL语句中的反引号和方括号有什么区别??mysql

我以为还会有另一个问题,但我找不到。在使用PHP的MySQL中,我通常用反引号封装字段名,以掩盖任何保留的名称或字符。但是,我的一位同事指出,这也可以使用方括号来实现。排除反引号与SQL Server不兼容的事实(显然),有什么区别?我应该使用哪个?

SELECT username FROM users SELECT [username] FROM [users]

展开
收起
保持可爱mmm 2020-05-17 12:26:20 591 0
1 条回答
写回答
取消 提交回答
  • SQL Server / T-SQL使用方括号(以及MS Access),而MySQL使用反引号。

    据我所知,可以在文档中露面,或在测试中使用,方括号是不是有效的MySQL。因此,如果需要在SQL Server中将关键字作为表名括起来,请使用[],而在MySQL中请使用反引号,或在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)来源:stack overflow

    2020-05-17 12:27:36
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
SQL Server 2017 立即下载
GeoMesa on Spark SQL 立即下载
原生SQL on Hadoop引擎- Apache HAWQ 2.x最新技术解密malili 立即下载

相关镜像