【?疑问】SQL中一个奇怪的字符串组合(已解决)
错误描述:[Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '...' at line 1

对于SQL语句,博主没有系统地学习过,都是边用边学,以致于有时候出现问题要花很多时间才能解决。

前言
本篇博文用于记录今天遇到的一个问题,暂且称其为一个奇怪的问题,描述:字符串 “;/**/;” 无法插入到数据库,我不知道上面这个字符串组合或者说里面的某个组合在SQL语句中有什么特殊的含义,以致插入的内容含有以上组合时执行就会报错。即使是字符串“test;/*test*/ test;test”插入,依旧是报错。


测试
测试的表很简单,一个主键id,一个name字段,如下:
文章正文图片

当我试图向表中插入“;/**/;”字符串或类似结构字符串时,就会报错。SQL语句如下:
INSERT INTO tt(id, `name`) VALUE(1, ';/**/;');                    --error
INSERT INTO tt(id, `name`) VALUE(2, ';/*test*/ test;');           --error
INSERT INTO tt(id, `name`) VALUE(3, 'test;/*test*/ test;');       --error
INSERT INTO tt(id, `name`) VALUE(4, 'test;/*test*/ test;test');   --error
INSERT INTO tt(id, `name`) VALUE(5, '; /**/;');                   --success

文章正文图片

可以看到,只有最后一个插入正确,最后一个我在 “;” 和 “/” 之间插入了一个空格。


总结
博主实在想不通为什么会这样,这样的字符串组合为什么会报错。截至写这篇笔记,我的解决方法还是在“;” 和 “/” 之间加空格。

如果你知道问题所在,或者你有什么想法,欢迎留言探讨。期待您的看法。




/****************************************** 2018/04/10 更新 ***************************************/
经过测试发现,用其他工具或者直接用命令行操作,不会有此问题。。。如下图:
可以正常操作。
文章正文图片

所以这么看来可能是博主当前使用的这个版本的 Navicat 的问题,不清楚别的版本是否存在这个问题,也不清楚我这个是否是个个例

总之这个不大不小的暂且称为 “软件闹剧” 的问题还是困扰了我一晚上,当时可能是被搞蒙了,也没想到有可能是软件的问题,也没用其他软件或方法测试一下。

还好最后没啥影响。这个问题也算是过去了。




 
It's
欢迎访问本站,欢迎留言、分享、点赞。愿您阅读愉快!
*转载请注明出处,严禁非法转载。
https://www.devsong.org
QQ留言 邮箱留言
头像
引用:
取消回复
提交
涂鸦
涂鸦
热门