MySQL с использованием поля GROUP_CONCAT в MATCH AGAINST - PullRequest
1 голос
/ 25 октября 2011

У меня 2 таблицы: набедренная повязка и панели. В настоящее время у меня есть успешный запрос GROUP_CONCAT и MATCH AGAINST. Немного укоротил:

SELECT LOINC_NUM as ln,LONG_COMMON_NAME,SYSTEM,
(SELECT GROUP_CONCAT(PARENT_NAME) from panels WHERE LOINC_NUM = ln) as PANEL_STRING,
(SELECT GROUP_CONCAT(PARENT_LOINC) from panels WHERE LOINC_NUM = ln) as PANEL_LOINC_STRING,
MATCH (SYSTEM,LONG_COMMON_NAME) 
AGAINST ('string' IN BOOLEAN MODE) AS score FROM loinc 
WHERE MATCH(SYSTEM,LONG_COMMON_NAME) 
AGAINST ('string' IN BOOLEAN MODE) 
ORDER BY score DESC LIMIT 100

Однако, если бы я также хотел сопоставить PANEL_STRING с 'полем' (которое является GROUP_CONCAT). В другом месте я обнаружил, что я могу изменить подзапрос на объединение, однако, похоже, он возвращает только одну строку, так как не каждая строка в наборе loinc присоединяется к панели.

Кто-нибудь желает помочь мне и показать, как я могу сделать поле GROUP_CONCAT тем, которое я могу использовать для поиска в МАТЧЕ ПРОТИВ? Спасибо

1 Ответ

0 голосов
/ 25 октября 2012

Если имя вашей панели является идентификатором иерархии (например, 001.007.0014), вы можете создать GROUP_CONCAT, который начинается с идентификатора иерархии, а затем добавить номер LOINC или номер детали LOINC в конце (например, 001.007.014: LP7407- 7 и 001.007.014: 9987-6). С помощью этого GROUP_CONCAT вы можете осуществлять поиск по целым разделам панелей или только по отдельной детали LOINC или LOINC.

...