MySQL дефис в выражении LIKE - PullRequest
1 голос
/ 22 июня 2011

Я работаю с устаревшей платформой PHP и сталкиваюсь с некоторым странным поведением, которое не могу отследить.

Я выполняю запрос, который выглядит примерно так

select * from table where column like '%word-anotherword%'

, который я хотел бы вернуть записи из таблицы, в которой столбец содержит текст «слово-другое слово».(столбец - поле длинного текста).

Когда я запускаю этот запрос в phpMyAdmin, я получаю ожидаемые результаты.Но когда я запускаю его изнутри нашей структуры, я не получаю никаких результатов.Я запустил его в отдельном файле .php, используя mysql_link, mysql_query для выполнения запроса, и это также ведет себя как ожидалось.

Когда я echo отправляю запрос в рамках непосредственно перед его передачей в mysql_query, он форматируется так же, как я и ожидал.IE наш фреймворк не ускользает от него каким-то неожиданным образом.

Я предполагаю, что наш фреймворк где-то переопределяет некоторые настройки PHP, чтобы вызвать эту разницу в поведении, но мне не повезло, что он ищет.Я нашел эту статью , которая казалась хорошим началом, но также не вполне соответствовала тому, что я вижу, поскольку я получаю различные варианты поведения на одной и той же установке MySQL.

Любые указатели в правильном направлении будут с благодарностью!

Ответы [ 2 ]

2 голосов
/ 22 июня 2011

Как отладочный хедз-ап:

Когда вы echo отправляете запрос, вы можете убедиться, что действительно видите данные - например, если вы используете echo на веб-странице, убедитесь, что вы применяете htmlspecialchars() к строке. В противном случае вы можете не заметить некоторые изменения.

1 голос
/ 22 июня 2011

LIKE - это не полнотекстовый поиск, поэтому заголовок вопроса неправильный и, возможно, та статья, которую вы нашли, не связана с вашей проблемой.

А по поводу вашей проблемы откройте my.cnf и включите журнал запросов:

[mysqld]

#Set General Log
log = "C:/all_queries.log"

Теперь запустите ваш запрос и загляните в журнал.

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