Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: MySQL не индексирует и не находит некоторые слова
 
 автор: beowulf   (26.08.2005 в 21:56)   письмо автору
 
 

Возможна - ли ситуация, когда MySQL не индексирует и не находит некоторые слова (длиной >4 символов) И что делать в таких случаях? Можно-ли написать универсальный запрос, который будет находить все слова имеющиеся в базе?

   
 
 автор: cheops   (26.08.2005 в 22:44)   письмо автору
 
   для: beowulf   (26.08.2005 в 21:56)
 

Имеется ввиду полнотекстовый поиск? Да такая ситуация возможно, если слово встречается в более половины всех записей. Вместо полнотекстового поиска можно использовать операторы LIKE и RLIKE.

   
 
 автор: beowulf   (26.08.2005 в 22:48)   письмо автору
 
   для: cheops   (26.08.2005 в 22:44)
 

с LIKE результат тот же

   
 
 автор: cheops   (26.08.2005 в 22:58)   письмо автору
 
   для: beowulf   (26.08.2005 в 22:48)
 

А что ищем и как выглядит запрос?

   
 
 автор: beowulf   (26.08.2005 в 23:08)   письмо автору
 
   для: cheops   (26.08.2005 в 22:58)
 

Вот запрос
"select * from  table where column1 like '$search%'or column2 like '$search%'

Надо найти слово, которое точно имеется в базе и м.быть в одной из колонок

   
 
 автор: cheops   (27.08.2005 в 12:55)   письмо автору
 
   для: beowulf   (26.08.2005 в 23:08)
 

Но этот запрос также говорит, что слово должно быть первым в столбце, если это в ваши планы не входит - следует исправить его следующим образом
"select * from  table where column1 like '%$search%'or column2 like '%$search%'

   
 
 автор: beowulf   (28.08.2005 в 13:03)   письмо автору
 
   для: cheops   (27.08.2005 в 12:55)
 

Да, вы правы. Спасибо за совет.
Меня смутила фраза "Чтобы проверить соответствие любому количеству символов или только одному, используйте символ процента(%) или точку(.) соответственно. Например, чтобы найти все песни, содержащие в названии слово "Ship" используйте: "select title from song where title like '%Ship%' " / справочник SQL.Спб,2004 с.112
Еще, как выяснилось, работает такой запрос "rlike '$search+'"

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования