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

MySQL数据库名含连字符致SQL语法错误的解决求助

解决MySQL含连字符数据库名的SQL语法错误问题
  • 核心解决方案:用**反引号(`)**包裹包含连字符的数据库名称,这是MySQL识别特殊字符标识符的标准方式。
  • 修正后的基础查询语句:
    SELECT * FROM `system_prod2024-25`.course_role;
    

为什么你之前的尝试无效?

  • []:这是SQL Server的标识符引用语法,MySQL不支持。
  • ":MySQL默认关闭ANSI_QUOTES SQL模式,此时双引号会被当作字符串引用而非标识符;仅开启该模式后才能用双引号包裹标识符,但反引号是通用兼容的写法。
  • ':单引号仅用于包裹字符串值,不能用来引用数据库、表这类标识符,会被MySQL解析为字符串,直接触发语法错误。

复杂查询的注意事项

如果实际查询涉及多个含特殊字符的标识符(比如带连字符的表名、列名),同样需要用反引号分别包裹每个标识符,示例:

SELECT `user-id`, `role-name` FROM `system_prod2024-25`.`course_role` WHERE `create-time` > '2024-01-01';

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 18:57:34