Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как прогнать одну таблицу по всем значениям из другой Full-Text Search / 4 сообщений из 4, страница 1 из 1
21.02.2017, 16:02
    #39408577
sqlfs
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как прогнать одну таблицу по всем значениям из другой Full-Text Search
У меня есть таблица tblMain с текстовыми полями. Есть справочник Наименований tblName.
Мне нужно в tblMain.Drug "распознать" тестовое поле которое может соответствовать названию из справочника tblName.Prep .
Вся проблема в том, что нужно это сделать как Full-Text Search.
Перепробывал многое:
1. MySQL Fulltext Index
2. Sphinx
но как-то у меня ничего не выходит:
1. Fulltext Index синтаксис MATCH([field] [value])
опять же не нашел толкового варинта, чтобы можно было прогнать каждую из записей по все таблице Справочника.
Ну только если функцию:
....
RETURN (SELECT *
MATCH(tblMain.drugApt) AGAINST (@val IN BOOLEAN MODE)
)
....
Но при таком раскладе я могу прогнать сам справочник по таблице tblMain. А нужно по сути наоборот.

2. У сфинкса нету также такой возможности, пробовал прогонять каждое tblMain.Drug при помощи PHP по всему Справочнику - это убийство.

Подскажите варианты....
...
Рейтинг: 0 / 0
21.02.2017, 19:14
    #39408722
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как прогнать одну таблицу по всем значениям из другой Full-Text Search
sqlfsпри таком раскладе я могу прогнать сам справочник по таблице tblMain. А нужно по сути наоборотВо бред-то... "При таком раскладе" ты можешь "прогнать" каждую пару MATCH (значение поля записи одной таблицы) AGAINST (значение поля записи другой таблицы). Или у тебя справочник - на бумаге напечатанный?

В общем, сделай запрос
Код: sql
1.
2.
3.
4.
5.
6.
SELECT tblMain.Drug
-- SELECT tblName.Prep
     , MAX(MATCH (tblMain.Drug) AGAINST (tblName.Prep IN BOOLEAN MODE)) MaxMatch
FROM tblMain, tblName
GROUP BY tblMain.Drug
-- GROUP BY tblName.Prep


Он для каждого tblMain.Drug (а если перекомментировать - для каждого tblName.Prep) даст максимальный Match среди всех. Используй его как подзапрос для отбора конкретных записей второй таблицы, дающих это значение Match - получишь нужные тебе пары. Ну а дальше - ручками да глазками...
...
Рейтинг: 0 / 0
21.02.2017, 20:34
    #39408759
Melkij
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как прогнать одну таблицу по всем значениям из другой Full-Text Search
AkinaAGAINST (значение поля записи другой таблицы)
Неа, mysql так не умеет .
авторThe search string must be a string value that is constant during query evaluation
...
Рейтинг: 0 / 0
21.02.2017, 20:59
    #39408775
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как прогнать одну таблицу по всем значениям из другой Full-Text Search
Гм... подзабыл, видимо - давно не использовал. Ну тады процедура, курсор и препарация, куда деваться.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как прогнать одну таблицу по всем значениям из другой Full-Text Search / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]