我遇到了一个非常不寻常的MySQL问题,涉及反斜杠。基本上,当我做一个通配符匹配像\ n的是在数据库中的文本,而不是实际的换行符,它只会返回一个比赛,如果我刚才右手通配符:在MySQL中使用通配符搜索反斜杠时奇怪的行为
SELECT *
FROM `tmptest`
WHERE `a` LIKE '\\\\n%'
现在,如果我这样查询,它不会返回任何东西:
SELECT *
FROM `tmptest`
WHERE `a` LIKE '%\\\\n%'
正如你可以从我在表中的数据看到的,两个查询都应该匹配。我不确定它是否是我错过的东西,或者我不正确地转义换行符,但它对第一个查询无效,第二个查询不合理。
表结构:
CREATE TABLE IF NOT EXISTS `tmptest` (
`a` varchar(22) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
的样本数据:
INSERT INTO `tmptest` (`a`) VALUES
('\\n'),
('\\n\\ndfsdfsdfs\\n');
感谢您抽出时间来阅读。
奇怪,对我来说工作很好。你使用的是哪个mysql版本? – Jim
+1,有趣的问题。我赞扬你提供了关于如何创建结构和插入样本数据的正确信息。很棒的第一篇文章 –
我在这里复制它。版本:mysqld版本5.1.49 - 在i686上使用suse-linux-gnu(SUSE MySQL RPM) –