|
|
|
| Помогите пожалуста решить задачу с помощью Mysql
есть таблица вней столбцы id, category, subcategory, name, и другие...
Необходимо чтобы значения в столбцах category, subcategory, name сформировались в один столбец и в нем по тексту производился поиск( например оператором LIKE).
Может есть такая функция объедения? | |
|
|
|
|
|
|
|
для: sanekdi
(15.01.2010 в 14:21)
| | FULLTEXT обычно для поиска пошустрее
можно создать запросом типа
CREATE FULLTEXT INDEX `имя` ON `таблица` (`category`, `subcategory`, `name`);
, и искать по индексу
, но что-то названия столбцов настораживают , обычно имена категорий с субкатегориямй и имён
не хранятся в таком виде.
А по всяким INT fulltext'а не бывает | |
|
|
|
|
|
|
|
для: heed
(15.01.2010 в 16:46)
| | Мне необходимо сделать поиск по катологу
есть 4 таблицы tovar, marka, catalog, subcatalog
поля таблицы tovar
id
name
price
code
id_marka
id_catalog
id_subcatalog
поля таблицы marka
id
name
поля таблицы catalog
id
name
поля таблицы subcatalog
id
name
id первичный ключи во всех таблицах
поиск происходит по полям name по всем таблицам по полю name
name содержит не более 255 символов.
Как лучше организовать поиск по каталогу, товаров около 10 000, через операторы rlike сильно нагружает базу | |
|
|
|
|
|
|
|
для: sanekdi
(15.01.2010 в 18:03)
| | Вообще-то наверное как-то нелогично найденное в таблице категорий
приравнивать к найденному в таблице товаров.
По логике нужно сначалв пройтись по таблице категорий и отдельно предложить просмотреть найденные категории
, а отдельно выдать список товаров.
Поставить в известность вобщем чего именно нашло, а не вываливать все товары из совпавшей категории.
Что до fulltexta, возможно он и не подходит для такого поиска по одним наименованиям
, у него мания сравнивать слова только начиная с их начала ,
если написать "скребок" то он найдёт этот "скребок" но не найдёт "поскребок" :)
, хотя я просто слова делал (IN BOOLEAN MODE)
// или "сочетания слов"
И не более ft_(maxwordlength)? (4 по уолчанию) букв индексирует
, только к одной таблице можно создать такой индекс, если я правильно понял мануал | |
|
|
|