这是mysql查询
SELECT p_id, model_number, brand_name FROM tbl_products where model_number="Sha\"sha\'dd\"d"
你可以看到第二行有相同的值,但选择它时不起作用。任何帮助都将是值得欣赏的。
答案 0 :(得分:1)
你必须使用反斜杠转义引号和反斜杠。
像这样:
where model_number="Sha\\\"sha\\\'dd\\\"d"
或者你可以简单地使用反引号作为值的引号,将字面上的值解释为原始字符串(这不是标准的SQL但在MySQL中有效):
where model_number=`Sha\"sha\'dd\"d`
答案 1 :(得分:1)
您可以看到此链接:http://dev.mysql.com/doc/refman/5.7/en/string-literals.html
根据表10.1
列出所有特殊字符转义序列和其他一些方法:
有几种方法可以在字符串中包含引号字符:
带有“'”的字符串中的“'”可以写成“''”。
“”在引用“”“的字符串中可以写成”“”“。
通过转义字符(“\”)来引用引号字符。
引用“”“的字符串中的”p“不需要特殊处理 不需要加倍或逃脱。以同样的方式,“”在一个字符串内 引用“'”不需要特殊处理。
遵循此规则,您的SQL可以写成:
where model_number="Sha\\\"sha\\\'dd\\\"d"
或
"Sha\\""sha\\''dd\\""d"