sql语句中的小引号问题
用Navicat导出的SQL文件中看到如下语句:
DROP TABLE IF EXISTS `ls_about`; CREATE TABLE `ls_about` ( `id` int(5) NOT NULL AUTO_INCREMENT, `title` varchar(1000) DEFAULT NULL, `type_id` tinyint(2) DEFAULT NULL, `author` varchar(16) DEFAULT NULL, `pics` varchar(50) DEFAULT NULL, `content` longtext, `times` datetime DEFAULT NULL, `copyfrom` varchar(50) DEFAULT NULL, `description` varchar(550) DEFAULT NULL, `keywords_title` varchar(200) DEFAULT NULL, `keywords` varchar(100) DEFAULT NULL, `posids` int(1) DEFAULT '0', PRIMARY KEY (`id`), KEY `type` (`type_id`) USING BTREE ) ENGINE=MyISAM AUTO_INCREMENT=9 DEFAULT CHARSET=utf8;
但是自己敲入客户端时,总是提示语法错误。后来google一下,才知道‘ls_about'外包含的不是单引号,而是小引号。
小引号就是数字键1左边的那个键打出来的字符 " ` "。使用小引号主要是为了与mysql系统函数重名,导致解析错误,如下例:
CREATE TABLE IF NOT EXISTS ls_conf( name varchar(32) NOT NULL, value int(10) NOT NULL, desc TEXT DEFAULT NULL, PRIMARY KEY (`name`) )ENGINE=MyISAM AUTO_INCREMENT=9 DEFAULT CHARSET=utf8;
如果不加小引号,客户端程序必定会解析desc为mysql内置命令,造成SQL语句无法执行。至于为什么使用小引号,而不使用单引号,笔者也不清楚了。可能怕单引号解析也
会同样会出现错误吧。
· .NET 依赖注入中的 Captive Dependency
· .NET Core 对象分配(Alloc)底层原理浅谈
· 聊一聊 C#异步 任务延续的三种底层玩法
· 敏捷开发:如何高效开每日站会
· 为什么 .NET8线程池 容易引发线程饥饿
· 终于决定:把自己家的能源管理系统开源了!
· 外部H5唤起常用小程序链接规则整理
· C#实现 Winform 程序在系统托盘显示图标 & 开机自启动
· 了解 ASP.NET Core 中的中间件
· 详解:订单履约系统规划