MySQL中字段名和保留字冲突的解决办法
我们知道通常的SQL查询语句是这么写的:
网站建设哪家好,找创新互联!专注于网页设计、网站建设、微信开发、小程序制作、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了咸丰免费建站欢迎大家使用!
复制代码
代码如下:select
col
from
table;
这当然没问题,但如果字段名是“from”呢?
复制代码
代码如下:select
from
from
table;
若真的这么写,必然出错,当字段名与MySQL保留字冲突时,可以用字符“`”将字段名括起来:
复制代码
代码如下:select
`from`
from
table;
总结
刚发现我原先设计的数据库表里有两个字段都用了保留字(add,comment)。在insert和update的时候出错。记得sql
server里好像是用[]括起来就ok了。于是试了一下,事实证明这在mySql里行不通。上网简单搜了一下发现都是说用中括号。后来又想到MySql
Administrator生成的sql语句好像会把表名什么都用单引号括起来。试了一下,还是行不通。但复制生成的那个符号发现可以。确定那个符号不是单引号。一看才发现时撇号(`
就是数字1前面那个键上的)。到此问题解决。总结一下就是一句话:
在Mysql中,当表名或字段名乃至数据库名和保留字冲突时,在sql语句里可以用撇号(`)括起来。
【MySQL】字段名与关键字冲突解决办法
首先,不推荐使用MySQL的关键词来作为字段名,但是有时候的确没有注意,或者因为之前就这么写了,没办法,那怎么办呢?
下面就详细的说明一下怎样使用 方法2 来处理。
上面的测试表是MySQL自动生成的DDL,其实从上面就可以看出,MySQL的引号内是说明绝对的保证大小写和当做普通字符串处理。
这里使用了maxvalue这个不常用的关键词作为字段名,一样违反了通常常规的命名规则,MySQL无法很好的识别。
查询SQL:
在navicat中可以正常执行,没有任何问题。
然后再运行insert语句:
提示下面的错误:
提示错误,但是没有明显的说明是关键词不能识别。
增加引号,使用MySQL的引号“`”,记住不是普通的英文单引号“'”,是倾斜的上撇,不是竖直的上撇。
键盘输入方式为键盘英文字母键上面的数字键1最前面的那个波浪线和顿号组成的键。也就是ESC下面,TAB键上面的按键。
这样就可以正常运行了。
mysql查找A字段含有XXX的且B字段重复出现的数据。
select * from qrcode
where remark like "%系统自动充值%" and ord in (select orderno from qrcode group by ord having COUNT(*)1)
网站栏目:mysql怎么看字段冲突 mysql怎么查看字段的类型
网站URL:http://scyingshan.cn/article/dospjgp.html