|
|
|
| Возможна - ли ситуация, когда MySQL не индексирует и не находит некоторые слова (длиной >4 символов) И что делать в таких случаях? Можно-ли написать универсальный запрос, который будет находить все слова имеющиеся в базе? | |
|
|
|
|
|
|
|
для: beowulf
(26.08.2005 в 21:56)
| | Имеется ввиду полнотекстовый поиск? Да такая ситуация возможно, если слово встречается в более половины всех записей. Вместо полнотекстового поиска можно использовать операторы LIKE и RLIKE. | |
|
|
|
|
|
|
|
для: cheops
(26.08.2005 в 22:44)
| | с LIKE результат тот же | |
|
|
|
|
|
|
|
для: beowulf
(26.08.2005 в 22:48)
| | А что ищем и как выглядит запрос? | |
|
|
|
|
|
|
|
для: cheops
(26.08.2005 в 22:58)
| | Вот запрос
"select * from table where column1 like '$search%'or column2 like '$search%'
|
Надо найти слово, которое точно имеется в базе и м.быть в одной из колонок | |
|
|
|
|
|
|
|
для: beowulf
(26.08.2005 в 23:08)
| | Но этот запрос также говорит, что слово должно быть первым в столбце, если это в ваши планы не входит - следует исправить его следующим образом
"select * from table where column1 like '%$search%'or column2 like '%$search%'
|
| |
|
|
|
|
|
|
|
для: cheops
(27.08.2005 в 12:55)
| | Да, вы правы. Спасибо за совет.
Меня смутила фраза "Чтобы проверить соответствие любому количеству символов или только одному, используйте символ процента(%) или точку(.) соответственно. Например, чтобы найти все песни, содержащие в названии слово "Ship" используйте: "select title from song where title like '%Ship%' " / справочник SQL.Спб,2004 с.112
Еще, как выяснилось, работает такой запрос "rlike '$search+'" | |
|
|
|