小编Ada*_*dam的帖子

使用通配符在MySQL中搜索反斜杠进行LIKE时的奇怪行为

我遇到了一个非常不寻常的MySQL问题,涉及反斜杠.基本上,当我使用LIKE进行通配符匹配时,\n在数据库中作为文本而不是实际的换行符,如果我只有一个右手通配符,它​​将只返回一个匹配:

SELECT * 
FROM  `tmptest` 
WHERE  `a` LIKE  '\\\\n%'
Run Code Online (Sandbox Code Playgroud)

现在,如果我这样查询,它将不会返回任何内容:

SELECT *  
FROM `tmptest` 
WHERE `a` LIKE '%\\\\n%'
Run Code Online (Sandbox Code Playgroud)

正如您从表中的数据中看到的,两个查询都应该匹配.我不确定这是否是我遗漏的东西,或者我错误地转换了换行符,但是第一个查询无效,第二个查询没有意义.

表结构:

CREATE TABLE IF NOT EXISTS `tmptest` (
`a` varchar(22) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
Run Code Online (Sandbox Code Playgroud)

样本数据:

INSERT INTO `tmptest` (`a`) VALUES
('\\n'),
('\\n\\ndfsdfsdfs\\n');
Run Code Online (Sandbox Code Playgroud)

感谢您花时间阅读本文.

mysql sql database

7
推荐指数
1
解决办法
1129
查看次数

标签 统计

database ×1

mysql ×1

sql ×1