|
|
|
| всем привет!!!
Подскажите как сделать так, чтобы при поиске искалась не точная фраза.
(Раньше я делал через like и для этого использовал символ %) | |
|
|
|
|
|
|
|
для: Roma
(21.03.2007 в 21:11)
| | REGEXP | |
|
|
|
|
|
|
|
для: Yuri
(21.03.2007 в 21:15)
| | А можно по подробнее?
Допустим я хочу найти слово "программирование".
Мне надо найти в БД слово, %программирование%. | |
|
|
|
|
|
|
|
для: Roma
(21.03.2007 в 21:22)
| | Ну так и ищите! Что вам мешает? | |
|
|
|
|
|
|
|
для: Саня
(21.03.2007 в 21:25)
| | почему-то так ничего не находит. | |
|
|
|
|
|
|
|
для: Roma
(21.03.2007 в 21:26)
| |
SELECT * FROM forums WHERE MATCH(name) AGAINST('%программирование%');
|
как и на что надо заменть %? | |
|
|
|
|
|
|
|
для: Roma
(21.03.2007 в 21:41)
| | просто у меня в книге ("практика создания web-сайтов") про это не написано | |
|
|
|
|
|
|
|
|
для: cheops
(22.03.2007 в 01:08)
| | все прочитал, спасибо за ссылки.
Возник вопрос: а можно сделать так, чтобы искомое слово было в середине найденного
(например, ищем слово "красный", а найдено слово "прекрасный")?
ЗЫ: при полнотекстовом поиске | |
|
|
|
|
|
|
|
для: Roma
(22.03.2007 в 10:21)
| | Да, можно, если используется логический режим с модификатором *
SELECT * FROM tbl
WHERE MATCH (description)
AGAINST ('красный*' IN BOOLEAN MODE);
|
| |
|
|
|
|
|
|
|
для: cheops
(22.03.2007 в 13:03)
| | я использовал логический режим, но если в базе имеется слово "прекрасный", а я в поиске ввожу "красный", то ничего не находит.
а я в запросе писал именно так, как вы говорили:
SELECT * FROM tbl
WHERE MATCH (name)
AGAINST ('красный*' IN BOOLEAN MODE);
|
ЗЫ. Данный запрос находит слово "красныйцвет", а слово "прекрасный" - никак:( | |
|
|
|
|
|
|
|
для: Roma
(22.03.2007 в 20:32)
| | Переносить звездочку перед словом пробовали? | |
|
|
|
|
|
|
|
для: Trianon
(23.03.2007 в 00:01)
| | Да, пробовал, но безрезультатно :( | |
|
|
|