2014-11-23 28 views
0

我有表person_content與下一列:SphinxSearch:復有言

  • PERSON_ID INT
  • 的content_id INT
  • is_star BOOL

,我需要選擇所有的人,誰是相關以超過N content_ids或具有is_star標誌,使用SphinxQL。

我的問題的第一部分可以使用COUNTGROUP BYHAVING解決:

SELECT person_id, COUNT(DISTINCT content_id) as t 
FROM person_content 
GROUP BY person_id HAVING t > N; 

是否有可能加入is_star條件要求?或者,例如,以某種方式將is_star * N添加到t

回答

0

如果我理解正確,你想要那些t > Nis_star爲真。如果是這樣,我認爲這應該爲你工作:

SELECT person_id, COUNT(DISTINCT content_id) as t, is_star 
FROM person_content 
GROUP BY person_id HAVING t > N or is_star; 

凡是在having條款MUST在你的SELECT語句選擇的列。

+0

首先,SphinxQL在HAVING語句中不支持多種過濾條件。其次,SphinxQL不支持OR操作符。 – 2014-11-23 21:11:14