真是奇葩年年多,今天又一个,我们都知道,无论是保留字还是关键字或者特殊端口等等,都是系统预留的自用的,但是偏偏有人喜欢用这些,所以就导致其他人在用的时候出现各种错误,今天就记录一个我遇到的,关于mysql字段名的问题。
今天在用sql查询时,总是提示index附近出现错误,刚开始以为是数值类型不对,检查了一下发现类型是varchar,然后才知道,问题的原因是index是关键字,正常情况下是不能作为字段名使用的,不知道谁建的表,偏偏使用了这个,再一看发现,sql了index是蓝色,那就是默认的关键字了。如图:
然后百度了一下解决办法,主要有两种:
1、将index加上单引号,然后执行sql语句,果然,没有报错,但是又出现一个问题就是,查询不到数据。看来是并不认可这种查询,或许是在建表的时候字段名是这种形式才能用这种形式进行查询吧。
2、index两边加上反引号,是的,是反引号不是单引号,键盘上和波浪号在一起的那个 。经过验证,这个解决方案是可行的,或许反引号的作用类似于正则里的"\"这个符号吧 。
最后还是警戒大家尽量避免这种问题,可能不仅仅是对你产生困扰,也给其他人带来不便,一个字段的名字而已,想不起来也可以用这些关键字的衍生字,index不能用,indexs不就可以了。