我有如下表:MySQL的SELECT WHERE LIKE转义的数据
--
-- Table structure for table `DESTINATIONS`
--
CREATE TABLE IF NOT EXISTS `DESTINATIONS` (
`DEST_ID` int(7) NOT NULL auto_increment,
`COUNT_ID` int(6) NOT NULL,
`REG_ID` int(6) NOT NULL,
`CITY_ID` int(6) NOT NULL,
`CREATE_DATE` datetime NOT NULL,
`DESTINATION` varchar(256) NOT NULL,
`APPROVED` tinyint(1) NOT NULL,
PRIMARY KEY (`DEST_ID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=192 ;
--
-- Dumping data for table `DESTINATIONS`
--
INSERT INTO `DESTINATIONS` (`DEST_ID`, `COUNT_ID`, `REG_ID`, `CITY_ID`, `CREATE_DATE`, `DESTINATION`, `APPROVED`)
VALUES (166, 9, 818, 0, '2011-10-27 15:24:20', 'Freeman\\''s Bay', 0);
,我试图运行下面的查询:
SELECT *
FROM `DESTINATIONS`
WHERE `DESTINATION` LIKE '%Freeman\'s Bay%'
这是返回0的结果。然而,在引号之前剥离LIKE子句将会发现并返回一个匹配。
很明显,我做错了什么,但我一直无法弄清楚究竟是什么。我可以不执行一个SELECT LIKE这个吗?我是否错误地避开了引号?任何输入是赞赏!
也许我在这里引起了一些混淆 - CREATE TABLE和INSERT在.SQL文件中,并且转义为将'Freeman \'Bay'插入到数据库中。 – DaveL
感谢您的理解。但为什么你需要存储转义的数据? – GolezTrol
我试图存储一个字面引号,并没有与SQL命令的结尾相混淆,因此它必须被转义。 – DaveL