Forum Webscript.Ru

Общие => Базы данных => Тема начата: yennifer от 17 Мая 2002, 13:05:42

Название: поиск в mysql
Отправлено: yennifer от 17 Мая 2002, 13:05:42
нужно осуществить поиск в бд mysql по одному/нескольким словам.

в запросе для бд есть такой параметр, как LIKE, но он по моему слегка криво работает.
например, когда набираешь fff в инпуте, а этого fff естественно, в помине нету, он все равно умудряется находить документ.
Название: поиск в mysql
Отправлено: fidget от 17 Мая 2002, 13:12:01
1. тебе надо не в ПХП а в базы данных писАть ...
2. LIKE работает нормально. Покажи свой запрос.
Название: поиск в mysql
Отправлено: yennifer от 17 Мая 2002, 13:21:12
почему не сюда? ведь можно извратиться ;)

ну я впрочем тут новичек, поэтому распорядков не знаю.

ок, вот запрос

SELECT documents.body, documents.header, documents.id from documents WHERE ((documents.body LIKE \'%ddd%\')) and documents.type<>1 LIMIT 200

например так:)
Название: поиск в mysql
Отправлено: fidget от 17 Мая 2002, 13:37:38
и что оно тебе выводит? :)
documents.body у тебя какого типа?
Название: поиск в mysql
Отправлено: yennifer от 17 Мая 2002, 13:44:26
что выводит... нет результатов выводит:)

тип - longtext
Название: поиск в mysql
Отправлено: fidget от 17 Мая 2002, 13:51:46
ниче не понимаю..
ты пару сообщений назад сказала, что оно умудряется находить документы, в которых и в помине нет заданных строчек
а теперь говоришь, что оно ничего не находит?
так оно делает то, что тебе нужно или не делает?
и если не делает, то что именно оно делает не так?
Название: поиск в mysql
Отправлено: yennifer от 17 Мая 2002, 13:58:43
ну короче, если набрать aaa то не находит, а если fff - находит:)

и еще - я вписываю в поле для поиска слово (или часть слова), который заведомо есть на странице, а оно его не находит :(
Название: поиск в mysql
Отправлено: fidget от 17 Мая 2002, 14:05:04
так я тебе ничего не скажу ...
можешь скинуть мне дамп таблицы на greta@ensita.net ?
Название: поиск в mysql
Отправлено: yennifer от 17 Мая 2002, 14:08:00
не, я все таки тормоз:)

fff находится, потому что в documents.body у меня хтмль-ники. а там есть цвета типа #fff000 :)

но блин! запрос же не умеет обрабатывать что то типа strip_tags, по моему не умеет

вот я и думаю - какой слоновий поиск у меня получится :(

выбрать все значения из бд, где тип документа - текст, потом в цикле брать значение каждого documents.body , стрипать теги, искать нужное (ые) слова, а есть находит - печатать на экран результать

кшмар :(
Название: поиск в mysql
Отправлено: AlieN от 27 Мая 2002, 12:53:33

$result=mysql_query("select blabla where field1=".striptags($peremennaya)." order by filed 155");
Название: поиск в mysql
Отправлено: Foshvad от 02 Июня 2002, 14:40:51
2AlieN: да нет,  у yennifer, на сколько я понял, html в базе хранится. Так что striptags тут не поможет. Помогут реги в MySQL, где-то читал, что он их поддерживает, только ни синтаксиса, ни источника вспомнить не могу... :(

Кстати под Win поиск с LIKE по кириллице действительно частенько выдает лишнии строки, но под Linux\'ом все нормально.
Название: поиск в mysql
Отправлено: YA от 02 Июня 2002, 22:49:31
Цитировать
Помогут реги в MySQL, где-то читал, что он их поддерживает, только ни синтаксиса, ни источника вспомнить не могу...

... WHERE value1 REGEXP value2
... WHERE value1 RLIKE value2
... WHERE value1 NOT REGEXP value2
... WHERE value1 NOT RLIKE value2
REGEXP и RLIKE - синонимы, value1 - то, что нужно с чем-то сравнить, value2 - собственно регулярное выражение.
Например:
SELECT `field` FROM `table` WHERE `field` NOT RLIKE \'^\'