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

MySQL中如何创建包含带连字符的年龄范围列名

解决MySQL列名含连字符的语法错误问题

嗨,这个问题我之前也碰到过!MySQL对标识符(表名、列名这类)的命名有严格规则:如果你的列名包含连字符-、以数字开头,或者和MySQL内置关键字重名时,直接写会被MySQL误判成语法结构(比如把-当成减号运算符),自然就报错了。

正确的解决方法:用反引号包裹列名

你只需要把包含特殊字符的列名用**反引号(`)**包裹起来,MySQL就会把它识别为普通的列名,而不是语法元素。

比如你原来的错误语句:

create table tested (0-4_tested varchar(255));

改成下面这样就可以正常执行了:

create table tested (`0-4_tested` varchar(255));

如果是你期望的ages_0-4列结构,对应的建表语句应该是:

create table tested (`ages_0-4` varchar(255));

插入/查询数据时也要用反引号

后续对这个列进行插入、查询操作时,同样需要用反引号包裹列名,比如插入你示例里的数据:

insert into tested (`ages_0-4`) values ('Tim'), ('Bobby'), ('Jim');

查询数据的语句:

select `ages_0-4` from tested;

简单来说,只要标识符包含特殊字符或者不符合MySQL的命名规范(比如数字开头),用反引号包裹就可以解决这类语法错误啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 09:47:27