狮身人面像GROUP BY
问题描述:
要说明这一点,请耐心等待。狮身人面像GROUP BY
这是我的MySQL表结构,通过索引的狮身人面像
------- ------- --------------
tag_id | tag | foreign_id |
------- ------- --------------
1 love 111
2 blue 222
3 lover 333
4 yellow 444
5 love 555
6 lov 666
我试图从狮身人面像让我查询的“爱”是这样的:
love = 2 hit
lover = 1 hit
任何人有任何想法如何做到这一点?我尝试下面的PHP代码,但它所输出,不过是为了“爱”
$cl->setGroupDistinct('tag');
$cl->setGroupBy('tag', SPH_GROUPBY_ATTR);
$cl->SetLimits(0, 10, 500);
$result = $cl->query("love", 'mytags');
一堆TAG_ID的我甚至试过,但它没有工作,以及
$cl->setGroupDistinct('tag');
我认为狮身人面像的组通过可以用来解决这个问题,但我很无能。非常感谢帮助!谢谢!
答
我不认为你想对你正在分组的同一个属性使用setGroupDistinct
。在SQL的术语,将类似于:
SELECT COUNT(DISTINCT tag)
FROM my_tags
GROUP BY tag
哪些据我所知只会返回1匹配每个标签。
我想如果你只是删除setGroupDistinct
的呼叫或将不同的字段更改为外国id(因此过滤出多个相同的标签附加到一个条目),你会很好去。
答
如果要计算标记和顺序desc.you应向setGroupBy函数添加额外的子句。
$cl->setGroupBy('tag', SPH_GROUPBY_ATTR,'@count desc');
$result = $cl->query('');