Извлечение данных из 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 в конце вашего совпадения с запросом, чтобы ограничиться одним результатом

Другие вопросы по тегам