|
Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » Поиск в MySQL |
|
Поиск в MySQL
|
Пользователь Сообщения: 90 |
Профиль | Сайт | Отправить PM | Цитировать Извините, если повторяюсь с темой, поиск по форуму не работает у вас, а сортировка по теме возвращает 0 строк.
Вопрос по поиску в MySQL. Отсылаем запрос в БД SELECT text FROM main WHERE text LIKE '%как%' OR text LIKE '%все%' Возвращается всё поле text, которое довольно большое, что не удобно для пользователя, зачем ему вывод всего текста, ему нужно только * *слова %заданный запрос% слова. Т.е. как сделать, что бы перед и после искомой фразы стояло несколько слов, а всё остальное вырезалось. |
|
Отправлено: 11:32, 01-10-2004 |
Ветеран Сообщения: 659
|
Профиль | Отправить PM | Цитировать хм... может стоит внимательней взглянуть на mnogosearch?
|
Отправлено: 22:28, 07-10-2004 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
just mar Сообщения: 3904
|
Профиль | Отправить PM | Цитировать Vlad Drakula
я не очень поняла слово "рамены" =( По поводу regex в MySQL: http://dev.mysql.com/doc/mysql/en/Regexp.html Но человеку нужно, насколько я понимаю не это, а откусить кусок получающегося в результате запроса текста. То есть можно написать что-то вроде: SELECT SUBSTRING(str, FOR (LOCATE("substr",str)-15) FOR (CHAR_LENGTH("substr"+15)) FROM что_то_там WHERE str LIKE '%"substr"%' AND... (Тут из поля str, выбранному по *условиям LIKE '%"substr"%' AND... *будет показана часть, начинающаяся за 15 знаков до искомого патерна и включающая его и еще 15 знаков. Желающие заморачиваться дальше могут попробовать отлавливать пробелы между словами, чтобы выводить не обрезки слов, а слова целиком |
Отправлено: 00:22, 08-10-2004 | #12 |
Engrossed by the Void Сообщения: 2229
|
Профиль | Отправить PM | Цитировать "Битва Титанов"
Правда битва есть суть оффтоп... кстати, я согласен с mar, мне тоже ближе философия выжимать из СУБД все до капли. Интересно, что тормознее при прочих равных условиях, MySql или PHP? |
------- Отправлено: 03:22, 08-10-2004 | #13 |
just mar Сообщения: 3904
|
Профиль | Отправить PM | Цитировать Prisoner Это не битва титанов, а сплошной офтоп Даже ответить человеку забыли за множеством важных дел
Но раз был задан еще один офтопный вопрос - продолжим Тормознутость PHP и MySQL сравнивать сложно - это разные системы и сделаны для разных вещей (это вроде, как, если кит на слона налезет, то кто кого поборет ). Но: во-первых, в PHP (не знаю, как в 5-ой версии, но подозреваю, что наследие осталось) не очень хорошо идет работа с массивами. Во-вторых, это все-таки интерпритатор (со всеми вытекающими по скорости)... Установка его модулем апача и zend-optimazer помогают, но суть остается. Про особенности работы СУБД с выборками я вроде уже как-то писала. - Большинству из них легче один раз поднять "тяжелый" (с точки зрения человека) запрос, чем терпеть постоянные мелкие дерганья маленькими запросиками в цикле. - Запросы обычно кешируются, отсюда дополнительный прирост в скоростях обработки. - СУБД для того и сделаны, чтобы не изображать их из PHP и им подобных. Можно написать свою собственную СУБД, но во-первых это будет долго, а во-вторых писать надо на чем-нибудь приличном (как минимум на C, еще быстрее работать будет вещь, написанная будет на ассемблере) - как показывает опыт лучше всего и быстрее всего в запросах отрабатывают вещи, напрямую идущие из понятий реляционной алшебры. Резюме - поддерживаю идею Цитата:
|
|
Отправлено: 16:05, 08-10-2004 | #14 |
Ветеран Сообщения: 1864
|
Профиль | Отправить PM | Цитировать Да, mar. Такие вещи как кеширование запросов и др дают базам данных преимущество в данном споре, но мне кажется железо сегодня стало уже достаточно развитым и сильным, чтобы больше обращать внимание на нужды и привычки программиста. Реальная разница между подходами, как мне кажется, будет просматриваться только на уровне очень больших проектов, а в основном для веб программирования это не свойственно (сложные большие проекты, насколько я заметил, всё равно пишут на других языках и используют их через cgi-интерфейс). У меня в учебнике по с/с++ так и пишут, что развитие техники позваляет программисту использовать приёмы в программировании, обеспечивающие большею читабельность кода не обращая при этом на скорость его обработки. Я веду к тому, что мне удобней во многом использовать функции языка, чем инструменты базы. Для меня следущий код является слишком нечитабельным и "некрасивым": SELECT SUBSTRING(str, FOR (LOCATE("substr",str)-15) FOR (CHAR_LENGTH("substr")+15)) FROM что_то_там WHERE str LIKE '%"substr"%' AND... Вообще, конечно, соблюдение законов теории и их правильное использование-это правильно. Это как раз то, что отличает *такого программиста-любителя, как я, от профессионала. Просто я думаю, сегодня это уже не так критично, как лет 15 назад и сегодня программист может уже отступать от теории, от того, как это правильно в сторону как это "красивей". [s]Исправлено: vadimiron, 21:10 8-10-2004[/s] |
------- Отправлено: 23:09, 08-10-2004 | #15 |
just mar Сообщения: 3904
|
Профиль | Отправить PM | Цитировать vadimiron
Во-первых признаю, что пример показанный мною - действительно достаточно уродлив, сбацан на скорую руку и только для показа возможностей строковых функций. Что касается осталного. Цитата:
О web-программировании и больших проектах: они вполне свойственны друг другу Особенно с развитием в последнее время XML. Но даже, если его не трогать, то простой и вполне распространенный пример - ERP - технологии (они же АСУ) для территорриально разбросанных предприятий. В этом случае работает единая база данных и web-интерфейс, скажем через шифрованные каналы VPN (virtual private network) Вот и крупный проект с быстрорастущей базой данных, включающей склад, финансы и т.д. Другой пример - интернет-магазин, связанный со складом. Или крупный форум (не даром этот - увы! часто глючит =() И т.д. и т.п. Поскольку мне приходилось (и пока еще, к счастью приходится ) принимать участие в разработках проектов подобного уровня, могу сказать, что на своих тестовых рабочих площадках *(на девелоперских машинах при очень неплохой технике), нам приходилось отказываться от всего лишнего в нагрузках на PC, чтобы они могли тянуть *проекты с реальными базами, слитыми с площадок заказчиков. (Правда в нашей фирме большинство - юниксоиды, то есть люди с навыками сисадминов, поэтому такие вещи были возможны. Так что надеяться на бесконечные возможности современной техники не стоит - они тоже не безграничны =( Что касается того, что было лет 15 назад, то мне почему-то кажется, что тогда были свои заморочки со своими отступлениями от теории . (я с самого начала сказала, что не предлагаю писать на асемблере ) Не берусь оценивать сказанное в учебнике по C++, скорей всего имелось в виду не наплевательство на скорость обработки кода, а сам подход к ООП (то есть классы со всеми их прибамбасами, облегчающие написание программ, хотя и скрывающие в себе прямой подход к проблеме ). Хотя что-то мне не припомнится подобных оговорок у Страбстраупа В общем, с чего и начала - мы все балансируем между... Кстати по поводу красивого кода отступлений и неотступлений: приведу пример работы *в среднем, или достаточно крупном проекте при работе с базами данных из ПХП: - набор классов ПХП (например на основе наследования от той же PHPlib), выстраивающихся по вертивали: - первый слой - структура базы (включая, если это не MYSQL, а хотя бы PostgreSQL VIEW и хранимые процедуры - следующий слой базовых классов (мы используем PHPLib) - дальше - что-то вроде мененджеров работы с базами данных - файлы обработки запросов форм и обработки результатов запросов при помощи вызова функций этих классов - мененджеров БД - шаблон вывода (пусть дизайнеры резвятся отдельно от программистов При такой структуре над одним проектом реально может работать группа из нескольких человек, причем одновременно. (При выполнении определенных соглашений по правилам написания кода, конечно). При этом сам файл обработки форм и результатов будет достаточнео коротким и читабельным. (Хотя, конечно, в скорости при такой многоступенчатой структуре несколько проигрываем. С другой стороны сильно выигрываем за счет слоя БД и максимального использования запросов ) И еще - MySQL все-таки не самый мощный из бесплатных СУБД. Учтите это |
|
Отправлено: 01:04, 09-10-2004 | #16 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
MySQL - MySQL & MySQL-Front | timon4ik | Программирование и базы данных | 2 | 06-04-2008 18:07 | |
Поиск статей по тексту и заголовкам в MySQL | Plutonium 239 | Вебмастеру | 9 | 17-02-2006 17:15 | |
Поиск в IE | Guest | Хочу все знать | 21 | 03-03-2004 09:52 |
|