我有一个基本表(用户),其中包含'用户名'列和用户ID'柱 现在我有2个条目:
USER USER ID
---------------------------
Mark 0
A's Catcher 1
B"s Catcher 2
我尝试了3次查询,带双引号的查询由于某种原因失败,如下所示:
1)工作:如果我执行以下查询
select * from user where username = 'Mark';
2) WORKS :如果我执行以下查询
select * from user where username = 'A\'s Catcher';
3)不工作:如果我执行此查询,则会给出0结果..
select * from user where username = 'B\"s Catcher';
我完全糊涂了,我觉得在没有任何问题之前我已经逃过这样的双引号..我在这里缺少什么?
答案 0 :(得分:0)
SELECT *
FROM user
WHERE username = CONCAT('B','"','s Catcher');
答案 1 :(得分:0)
MySQL就像PHP知道第一个引用类型:
'"' // a String with a "
"'" // a String with a '
只有外部引号需要在内部进行转义:
'\'' // a string with a '
"\"" // a string with a "
因此
'B\"s Catcher' // is a string literally containing: B\"s Catcher
sqlfiddle http://sqlfiddle.com/#!9/bb8d3c/1