如何用SQL查询包含特殊字符的字段名?是否应使用方括号或反引号?

2026-04-30 21:270阅读0评论SEO资讯
  • 内容介绍
  • 相关推荐

本文共计911个文字,预计阅读时间需要4分钟。

如何用SQL查询包含特殊字符的字段名?是否应使用方括号或反引号?

SQL Server 不允许直接写入带空格的列名,如 `SELECT user name FROM users` 这种写法会导致错误 `Incorrect syntax near 'name'`。必须使用方括号 `[[user name]]` 来显式标记识别符号边界。

常见触发场景包括:字段名含空格、连字符、中文、以数字开头(如 2nd_score),或撞上保留字(如 orderdesc)。方括号是 SQL Server 唯一标准方式,反引号在这里无效。

  • 正确写法:SELECT [user name], [2nd_score], [order] FROM orders
  • 嵌套使用也合法:SELECT [user].[name] FROM [dbo].[users](表名和列名都可括)
  • 注意:方括号不能嵌套,[[name]] 表示字面量 [name],不是转义

MySQL 中反引号是唯一安全的字段名转义方式

MySQL 默认不认方括号,强行用会报错 You have an error in your SQL syntax。必须用反引号 ` 包裹特殊字段名,比如 `user name``order`

反引号对所有非标准标识符都有效,包括含空格、点号、中文、保留字,甚至含反引号本身(需双写:`` 表示单个 ` 字符)。

阅读全文

本文共计911个文字,预计阅读时间需要4分钟。

如何用SQL查询包含特殊字符的字段名?是否应使用方括号或反引号?

SQL Server 不允许直接写入带空格的列名,如 `SELECT user name FROM users` 这种写法会导致错误 `Incorrect syntax near 'name'`。必须使用方括号 `[[user name]]` 来显式标记识别符号边界。

常见触发场景包括:字段名含空格、连字符、中文、以数字开头(如 2nd_score),或撞上保留字(如 orderdesc)。方括号是 SQL Server 唯一标准方式,反引号在这里无效。

  • 正确写法:SELECT [user name], [2nd_score], [order] FROM orders
  • 嵌套使用也合法:SELECT [user].[name] FROM [dbo].[users](表名和列名都可括)
  • 注意:方括号不能嵌套,[[name]] 表示字面量 [name],不是转义

MySQL 中反引号是唯一安全的字段名转义方式

MySQL 默认不认方括号,强行用会报错 You have an error in your SQL syntax。必须用反引号 ` 包裹特殊字段名,比如 `user name``order`

反引号对所有非标准标识符都有效,包括含空格、点号、中文、保留字,甚至含反引号本身(需双写:`` 表示单个 ` 字符)。

阅读全文