You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在SQL的select、where子句中使用以下划线开头的列名

SQL中下划线开头列的调用处理方案

错误原因

在绝大多数SQL方言的语法规则中,下划线开头的列名属于非标准标识符,直接在SELECT、WHERE等子句中书写时,会被解析器判定为语法错误,无法被正确识别为列名。

通用解决方案

用对应数据库支持的标识符引用符包裹下划线开头的列名即可正常调用,不同数据库的处理方式如下:

  • MySQL、MariaDB:使用反引号包裹列名
    示例代码:
    -- SELECT子句使用
    SELECT `_name`, id, mobile FROM user;
    -- WHERE子句使用
    SELECT * FROM user WHERE `_name` = '测试用户';
    
  • PostgreSQL、SQLite、Oracle(需开启QUOTED_IDENTIFIER配置):使用双引号包裹列名
    示例代码:
    -- SELECT子句使用
    SELECT "_name", id, mobile FROM user;
    -- WHERE子句使用
    SELECT * FROM user WHERE "_name" = '测试用户';
    
  • SQL Server:默认使用方括号包裹列名,开启QUOTED_IDENTIFIER配置后也支持双引号
    示例代码:
    -- SELECT子句使用
    SELECT [_name], id, mobile FROM user;
    -- WHERE子句使用
    SELECT * FROM user WHERE [_name] = '测试用户';
    

补充说明:如果使用ORM框架操作数据库,多数框架默认会自动对非标准标识符做转义处理,无需手动添加引用符,可查阅对应框架的标识符转义规则确认配置。

内容的提问来源于stack exchange,提问作者Jayshree Sherekar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 21:06:03