Поиск слова в ячейке

KartohA

Новичок
Поиск слова в ячейке

Добрый день.

Проблема такая. Есть у меня поле annotation (text), оно сожержит ключевые слова через пробел, например: "сад лето дождь" и т.д. Хочу сделать поиск по ключевому слову. Как правильно осуществить MYSQL запрос, чтобы он нашел эту строчку в таблице?


Спасибо.
 

phprus

Moderator
Команда форума
A-Lex[FM]
Подумай над тем сколько времени будет выполняться такой запрос. К тому же автор не указал в каком порядке должны встречаться слова, те твой запрос не найдет ячейку если в ней слова будут идти в обратном порядке.

KartohA
Используй полнотекстовый поиск. Он тут подходит гораздо лучше чем LIKE.
 

kruglov

Новичок
Или дополнительные 2 таблицы, в одной слова, в другой связка между словами и этими... фотками, наверное.
 

KartohA

Новичок
phprus
Подскажи, что мне лучше использовать?

id | title (varchar) | word (txt)
в ячейку word я записываю ключевые слова.

Хочу организовать поиск, думаю как лучше (textarea или textfield), хочу вписывать несколько слов и совершать поиск в базе по этим словам. результат должен быть - хоть одно из этих слов встречалось бы в ячейке word...

как поступить, подскажите.

-~{}~ 09.10.06 17:43:

записываю ключевые слова через пробел
 

phprus

Moderator
Команда форума
KartohA
Я бы сделал 2 дополнительные таблици:
wordid (auto_increment) | word (varchar) - в этой таблице у тебя будут храниться все ключевые слова для всех записей.
И таблицу связей:
id (id - записи) | wordid (id слова являющегося ключевым для данной картинки).

При поиске ищеш wordid всех слов, а потом по второй таблице ищеш каким записям соответствуют данные wordid.
 

KartohA

Новичок
phprus
Ок.. понимаю.. А при записи этих ключевых слов, пользователь их забивает в textarea через пробел, парсить слова и записывать их по отдельности? Как я понял у меня получается вот так:
1 таблица:
id | title |

2таблица:
idtable1 | wordid

3таблица:
wordid | word

-~{}~ 10.10.06 13:20:

и попутный вопрос... ведь в поле textfield забивается при поиске наприм несколько слов.. допустим через "+" где прочитать про парсер этого?
 

Фанат

oncle terrible
Команда форума
странно, почему поле с КЛЮЧЕВЫМИ СЛОВАМИ называется annotation

поле textfield забивается при поиске наприм несколько слов.. допустим через "+" где прочитать про парсер этого?
нигде
при поиске по ключевым словам поиск с плюсиками очевидно не имеет смысла. они там по умолчанию все с плюсиками
 
Сверху