Форум программистов, компьютерный форум, киберфорум
MySQL
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/30: Рейтинг темы: голосов - 30, средняя оценка - 4.60
0 / 0 / 1
Регистрация: 23.01.2009
Сообщений: 37
1

Поиск по базе mysql

27.09.2006, 14:22. Показов 5718. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте!
Подскажите, пожалуйста, как реализовать следующее.
Есть 3 поля в таблице: name (VARCHAR), desc_small(TEXT), description(TEXT).
Например, я ищу слово WORD.
Как сделать так, чтобы результаты выдавались так:
1. Сначала WORD в начале name.
2. Далее WORD в середине и конце name.
3.WORD в начале desc_small.
4.WORD в середине и конце desc_small.
5.WORD в начале description.
6.WORD в середине и конце description.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.09.2006, 14:22
Ответы с готовыми решениями:

Поиск в базе данных mysql
Здравствуйте подскажите пожалуйста как выполнить поиск в mysql с помощью php скрипта, на скрине я...

Поиск по базе MySQL
Здравствуйте, хочу создать приложение для андроид. Принцип: пользователь будет искать по базе...

Полнотекстовый поиск по базе mysql
Всем привет. Решил сделать полнотекстовый поиск, но результат не очень удовлетворительный. Поиск...

php+mysql (поиск в базе)
<?php if (isset($_POST)) { $noch = $_POST; if ($noch == '') { unset($noch);} } if (isset($_POST))...

6
85 / 61 / 69
Регистрация: 15.03.2007
Сообщений: 6,906
27.09.2006, 14:33 2
[Вопрос перенесен их форума PHP в форум MySQL]

Это можно решить с помощью оператора http://dev.mysql.com/doc/refman/4.1/en/union.html UNION.
MySQL
1
2
3
4
5
6
SELECT name, desc_small, description WHERE name LIKE 'WORD%'
UNION
SELECT name, desc_small, description WHERE name LIKE '%WORD%'
UNION
SELECT name, desc_small, description WHERE desc_small LIKE 'WORD%'
...
0
0 / 0 / 1
Регистрация: 23.01.2009
Сообщений: 37
28.09.2006, 02:09  [ТС] 3
А повторяющиеся результаты будут исключаться?
Т.е. если в двух запросах некоторые результаты повторялись, то повторы исключатся?
Я сделал пока в одном месте так - вроде, работает, а в основном поисковом скрипте не решаюсь так делать - боюсь будет много ресурсов будет брать, т.к. запросов выходит много.
0
85 / 61 / 69
Регистрация: 15.03.2007
Сообщений: 6,906
28.09.2006, 13:56 4
Повторы исключаться не будут. Надо или делать группировку (GROUP BY) по ключевому полю таблицы, если оно есть, или явно исключать повторы:
MySQL
1
2
3
4
5
6
7
8
SELECT name, desc_small, description WHERE name LIKE 'WORD%'
UNION
SELECT name, desc_small, description WHERE name LIKE '%WORD%'
UNION
SELECT name, desc_small, description WHERE desc_small LIKE 'WORD%' AND name NOT LIKE '%WORD%'
UNION
SELECT name, desc_small, description WHERE desc_small LIKE '%WORD%' AND name NOT LIKE '%WORD%'
...
0
0 / 0 / 1
Регистрация: 23.01.2009
Сообщений: 37
28.09.2006, 17:53  [ТС] 5
А здесь:
bazile (28.09.2006)
SELECT name, desc_small, description WHERE name LIKE 'WORD%'
UNION
SELECT name, desc_small, description WHERE name LIKE '%WORD%'
разве не будет повторов?
Это '%WORD% означает, что в начале и в конце что угодно, даже отсутствие символов?
Значит здесь тоже нужно исключить повторы?
0
85 / 61 / 69
Регистрация: 15.03.2007
Сообщений: 6,906
28.09.2006, 18:22 6
Будут. Запишем тогда так условие отбора
MySQL
1
2
3
SELECT name, desc_small, description WHERE name LIKE 'WORD%'
UNION
SELECT name, desc_small, description WHERE name LIKE '_%WORD%'
0
0 / 0 / 1
Регистрация: 23.01.2009
Сообщений: 37
28.09.2006, 22:23  [ТС] 7
Спасибо, кажется, работает, буду дальше тестировать.
0
28.09.2006, 22:23
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.09.2006, 22:23
Помогаю со студенческими работами здесь

MySQL: осуществить поиск по базе
Всем привет Возникла необходимость написать защиту, в этот раз хочу сделать ее через базу....

Поиск наименования в базе mysql
доброго времени суток!) передомной стоит вот такая задача: в базе данных(phpmyadmin) есть...

Поиск в Базе данных MySQL
Привет, форумчане. Помогите закончить поиск по базе данных MySql, пожалуйста. Шапку для запроса...

Поиск в Базе данных MySQL. Ничего не происходит
Привет, форумчане. Подскажите пожалуйста почему при нажатии на кнопку поиска открывается пустое...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru