MySQL SELECT WHERE LIKE экранированные данные - PullRequest
0 голосов
/ 28 октября 2011

У меня есть следующая таблица:

--
-- 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 это?Я правильно уклонился от кавычек?Любой вклад приветствуется!

Ответы [ 4 ]

2 голосов
/ 28 октября 2011

Неправильная вставка.Вы фактически вставляете значение Freeman\'s Bay, включая \.С выбором все в порядке.

Выбор сброшен неправильно.У вас есть значение Freeman\'s Bay, но вы ищете Freeman's Bay, исключая \.

1 голос
/ 28 октября 2011

'%Freeman\'s Bay%' и 'Freeman\\''s Bay' даже заметно различаются (очевидно, исключая %). Если вы установили, какой из форматов вы хотите использовать, у вас все будет хорошо

0 голосов
/ 03 февраля 2014

Вы пытались использовать повторную кавычку вместо того, чтобы избежать ее?Таким образом: 'Freeman''s Bay'

Используйте один и тот же синтаксис в обоих местах.

0 голосов
/ 29 октября 2011

Вы пытались написать строку LIKE, как она появляется в инструкции INSERT, но с% на обоих концах?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...