0

我有一个表,其中有 COLUMN 'name' 和另一个 COLUMN 'description'。

--- Name ---|--- Description ---

------- John | abc123

------- John | def456

------- John | ghi789

------- Terry | abc123

------- Terry | def456

------- Terry | ghi789

当我使用MATCH AGAINST时,我得到3 个输出。我需要的是只返回1 个值。

我还有一个“约翰”页面,其中给出了所有 3 个“描述”,所以我不能使用

     SELECT John WHERE description = 'abc123';

将其用于搜索,因此对于'john terry'的 $searchquery,我试图获得的输出是 $row['name'] 应该是 ('john', 'terry')

我只需要它是一个输出,即“John”“Terry”,而不是3 次* “John” * 和3 次* “Terry” *,我将通过它获取并在循环mysql_fetch_array中使用该数组。while

请建议是否可以这样做。

提前感谢您的时间和回复。

快乐编码!

4

2 回答 2

0

limit 1在匹配结束时对查询使用以限制为一个结果

于 2013-10-18T06:08:06.543 回答
0

使用GROUP BY.

所以你的查询是:

SELECT name FROM tableName WHERE MATCH(name) AGAINST("' . $searchQuery . '") GROUP BY name;

它会成功的。

于 2013-10-18T07:21:43.570 回答