单双引号存值
现在有一个表testquot
id | title | content |
---|---|---|
i01 | 标题1 | 有个"双引号"放入 |
i02 | 标题2 | 有个’单引号’放入 |
i03 | 标题3 | 有’单引号’和"双引号"同时放入 |
i04 | 标题4 | 一个正常文字放入 |
可以看到表中的content字段存的值有单引号和双引号,这些值该如何存入数据库,一般我们都会想到用反斜杠“\”字符来转义,当然是可以的,但是这里就不用“\”了。
在MySQL中,一般默认用单引号表示字符串,但我们也可以用双引号表示字符串。
下面是MySQL中转义单引号和双引号默认的做法:
- 两个单引号表示一个单引号字符本身,即两个单引号转义为一个单引号
insert into testquot(id,title,content) values('i05','标题5','带有''单引号''的值又放入了');
但是,对于保存只有单引号的数据,也可以用双引号包单引号的方式
insert into testquot(id,title,content) values("i05","标题5","带有'单引号'的值又放入了");
执行完后,表中数据如下:
id | title | content |
---|---|---|
i01 | 标题1 | 有个"双引号"放入 |
i02 | 标题2 | 有个’单引号’放入 |
i03 | 标题3 | 有’单引号’和"双引号"同时放入 |
i04 | 标题4 | 一个正常文字放入 |
i05 | 标题5 | 带有’单引号’的值又放入了 |
- 两个双引号表示一个双引号字符本身,即两个双引号转义为一个双引号
insert into testquot(id,title,content) values("i06","标题6","带有""双引号""的值又放入了");
但是,对于保存只有双引号的数据,也可以用单引号包双引号的方式
insert into testquot(id,title,content) values('i06','标题6','带有"双引号"的值又放入了');
执行完后,表中数据如下:
id | title | content |
---|---|---|
i01 | 标题1 | 有个"双引号"放入 |
i02 | 标题2 | 有个’单引号’放入 |
i03 | 标题3 | 有’单引号’和"双引号"同时放入 |
i04 | 标题4 | 一个正常文字放入 |
i05 | 标题5 | 带有’单引号’的值又放入了 |
i06 | 标题6 | 带有"双引号"的值又放入了 |
看完以上两条,对于如何保存单引和号双引号同时存在的值,应该就知道怎么写了,如下:
单引号为主
insert into testquot(id,title,content) values('i07','标题7','有''单引号''和"双引号"又同时放入');
或者双引号为主
insert into testquot(id,title,content) values("i07","标题7","有'单引号'和""双引号""又同时放入");
执行完后,表中数据如下:
id | title | content |
---|---|---|
i01 | 标题1 | 有个"双引号"放入 |
i02 | 标题2 | 有个’单引号’放入 |
i03 | 标题3 | 有’单引号’和"双引号"同时放入 |
i04 | 标题4 | 一个正常文字放入 |
i05 | 标题5 | 带有’单引号’的值又放入了 |
i06 | 标题6 | 带有"双引号"的值又放入了 |
i07 | 标题7 | 有’单引号’和"双引号"又同时放入 |
总结
对于MySQL数据入库保存,一般建议采用MySQL默认的单引号保存字符串的方式,基本不会遇到问题。因为实际生产中,常见的是保存带有双引号的数据,例如保存json格式字符串数据,用单引号就没问题。