我有一个表,其中有“名称”列和“描述”列。
--- Name ---|--- Description ---
------- John | abc123
------- John | def456
------- John | ghi789
------- Terry | abc123
------- Terry | def456
------- Terry | ghi789
当我使用MATCH AGAINST时,我得到3输出。我需要的是只返回 1 值。
此外,我还有一个“John”页面,其中给出了所有 3 个“描述”,以便我无法使用
SELECT John WHERE description = 'abc123';
将此用于搜索,因此对于'john terry'的$searchquery,我试图获得的输出是$row[' name'] 应该是 ('john', 'terry')
我只需要它是一个输出,即 "John" 和 "Terry" 而不是 3 次 *"John"* 和 3 次 *"Terry"* 我将通过 mysql_fetch_array
获取并在 中使用该数组>while
循环。
请建议是否可以这样做。
预先感谢您的时间和回复。
祝你编码愉快!
最佳答案
使用GROUP BY
。
所以你的查询是:
SELECT name FROM tableName WHERE MATCH(name) AGAINST("' . $searchQuery . '") GROUP BY name;
这样就可以了。
关于php - 使用 MATCH 和 AGAINST 从 MySQL 获取数据并限制结果以从相似名称的列中获取一个条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19442672/