mysql replace中含有双引号怎么办,试了转义不行

mysql replace中含有双引号怎么办,试了转义不行,第1张

MySQL里引用字符串常量时需要用一对英文单引号“ ' ”或英文双引号“ " ”将字符串常量常量括起来。例如:

'an apple'

"a book"

一般应使用英文单引号,如果字符串内需要包含单引号时,除了使用转义的办法外,我们可以选用一对双引号来包括字符串,这样字符串内的单引号被视作普通字符,无需特殊处理。

例如  Johnson's mother

select "Johnson's mother",'Johnson''s mother','Johnson\'s mother'

与单引号对应,使用英文双引号引用的字符串内需要包含双引号时,除了使用转义的办法外,我们可以用一对单引号来包括字符串,这样字符串内的双引号被视作普通字符,无需特殊处理。

例如  He said: "Go away"

select 'He said: "Go away"' ,"He said: ""Go away""" ,"He said: \"Go away\""

MySQL里使用一对反勾号“ ` ”将识别符括起来,一般情况下可以不用,单是如果识别符出现关键字冲突或标识符的写法可能产生歧义的情况下就必须使用。例如:

create table t1 (id int primary key ,desc varchar(10))-- 这句会报错

create table t1 (id int primary key,`desc` varchar(10))-- 这句客成功运行

另外,如果SQL服务器模式包括ANSI_QUOTES模式选项,还可以用双引号替代反勾号将识别符括起来:

mysql>CREATE TABLE "test" (col INT) ERROR 1064: You have an error in your SQL syntax. (...)mysql>SET sql_mode='ANSI_QUOTES'mysql>CREATE TABLE "test" (col INT)Query OK, 0 rows affected (0.00 sec)

之前报错,设置SQL服务器模式包括ANSI_QUOTES模式后,运行成功。

mysql数据库中,加双引号,一般是为了避免字段命名与系统相冲。比如date,他本来是mysql中预置的变量,这个时候你查selecetdatefromtable就会出问题,加上双引号或单引号或者反引号(就是键盘tab上边那个)select`date`fromtable

你所说的那个符号是反引号,一般在ESC键的下方。

它是为了区分MYSQL的保留字与普通字符而引入的符号。

举个例子:SELECT `select` FROM `test` WHERE select='字段值'

在test表中,有个select字段,如果不用反引号,MYSQL将把select视为保留字而导致出错,所以,有MYSQL保留字作为字段的,必须加上反引号来区分。

引号一般用在字段的值,如果字段值是字符或字符串,则要加引号,如:select='字段值'

不加反引号建的表不能包含MYSQL保留字,否则出错

用普通引号,当输入左引号时,后面的内容因为引号没有关闭而默认作为引号内的内容,用普通引号括起来的内容为绿色。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5916964.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-08
下一篇2023-03-08

发表评论

登录后才能评论

评论列表(0条)

    保存