Извлечение данных из MySQL с использованием MATCH и AGAINST и ограничение результата, чтобы иметь одну запись из столбца с похожим именем
У меня есть таблица, в которой есть COLUMN "имя" и еще одна COLUMN "описание".
--- Name ---|--- Description ---
------- John | abc123
------- John | def456
------- John | ghi789
------- Terry | abc123
------- Terry | def456
------- Terry | ghi789
Когда я использую МАТЧ ПРОТИВ, я получаю 3 выхода. Что мне нужно, это вернуть только 1 значение.
Также у меня есть страница для "Джона", где приведены все 3 "описания", поэтому я не могу использовать
SELECT John WHERE description = 'abc123';
Используя это для поиска, для $searchquery 'john terry' вывод, который я пытаюсь получить, должен быть $row['name'] должен быть ('john', 'terry')
Мне просто нужно, чтобы это был один вывод, т. Е. "Джон" и "Терри", а не 3 раза *"Джон"* и 3 раза *"Терри"*, которые я получу через mysql_fetch_array
и использовать массив в while
петля.
Пожалуйста, предложите, если это возможно.
Заранее спасибо за ваше время и ответ.
Удачного кодирования!
2 ответа
Использование GROUP BY
,
Итак, ваш запрос будет:
SELECT name FROM tableName WHERE MATCH(name) AGAINST("' . $searchQuery . '") GROUP BY name;
Это бы сработало.
Использование limit 1
в конце вашего совпадения с запросом, чтобы ограничиться одним результатом