如何在MySQL中将字符串与转义引号字符匹配?

如何在MySQL中将字符串与转义引号字符匹配?,mysql,sql,phpmyadmin,Mysql,Sql,Phpmyadmin,在PhpMyAdmin中,我使用以下查询: SELECT * FROM myrecords where TITLE LIKE "%\\\"%" 要筛选出保存不好且带有“符号的记录,请使用\符号进行转义。它应该是”。因此,我只需要用\“查找这些记录,并将其替换为”。但是,当我使用上面的查询来过滤\“时,我会得到\”的记录以及“的记录 如何使此查询只获取带有\“的记录,而不单独获取”?@paul请纠正我,方法如下: SELECT t1.title FROM myrecords as t1 wher

在PhpMyAdmin中,我使用以下查询:

SELECT * FROM myrecords where TITLE LIKE "%\\\"%"
要筛选出保存不好且带有
符号的记录,请使用
\
符号进行转义。它应该是
。因此,我只需要用
\“
查找这些记录,并将其替换为
。但是,当我使用上面的查询来过滤
\“
时,我会得到
\”
的记录以及
的记录


如何使此查询只获取带有
\“
的记录,而不单独获取

@paul请纠正我,方法如下:

SELECT t1.title FROM myrecords as t1 where replace(title,'\\\"','@') LIKE "%@%";

这是搜索
\“
的正确查询:

发件人:

若要搜索“\”,请将其指定为“\ \”。这是因为 反斜杠由解析器剥离一次,当模式 进行匹配,留下一个反斜杠进行匹配。“


试试->
'%\\“%”
使用单引号将整个字符串括起来,并且仅转义反斜杠看起来应该已经可以工作了,但是在MySQL看到查询之前,您的查询可能会被phpMyAdmin取消转义。你能试试命令行客户端吗?@hvd不能,因为我没有访问权限。我只使用phpMyAdmin编辑表中的数据。@tomasz在这种情况下,您可以尝试对每个
\
进行转义,以获得
“%”“
。如果我的猜测是对的,那就行了。如果我的猜测是错误的,它不会:)@hvd我得到错误:#1064-您的SQL语法有错误;请查看与您的MySQL服务器版本对应的手册,以了解在第1行“%”附近使用的正确语法,但我不明白它是如何工作的。在使用它之后,我得到了两列带有@的内容。这样,您将替换@的每一个\”,并使用@进行搜索,我不确定它是否会工作,你能在这里创建表的一部分吗:为了测试,我猜你的意思是有一个
HAVING
子句,而不是
WHERE
子句。但是您仍然缺少
replace(…)
列的别名。如果它有效,那就不是一个好的解决方案,对不起。@tombom我已经尽力了,它对我很有效,但是我需要一个真实的例子,这个表单中的查询不起作用。您不能使用
进行筛选,其中
选择
中“创建”的任何内容。当“标题”列中没有带“@”的行时,此查询的结果将为
NULL
SELECT * FROM myrecords where TITLE LIKE '%\\\\\\\"%';