FQL喜欢运算符

时间:2012-01-31 22:01:32

标签: facebook facebook-graph-api facebook-fql

有人可以告诉我为什么会这样:

SELECT name FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1=me()) AND strpos(lower(name),"jo") >=0

然而,这不是:

"SELECT url, id, type, site FROM object_url WHERE strpos(lower(url), 'sephora') >= 0"

当我把它放在http://developers.facebook.com/docs/reference/rest/fql.query/

我收到了这个回复:

您的陈述不可转化。 WHERE子句必须包含可索引的列。这些列在http://developers.facebook.com/docs/reference/fql

链接的表格中标有*

然而“url”确实可转位。

任何想法?我已经扫描了stackoverflow,但没有找到答案。

2 个答案:

答案 0 :(得分:1)

网站不可转化,只能选择。它旁边没有* https://developers.facebook.com/docs/reference/fql/object_url/

你需要使用url或id作为可索引列,所以基本上其中一个需要在你的where子句中。

答案 1 :(得分:0)

FQL!= SQL您不能在任何列上使用WHERE。考虑到这么多并发作家所要求的表现,这并不奇怪,我的意思是,世界上每十个人中就有一个人已经注册。

第二个示例中的问题是,在其中一个字符串函数中用作参数的字段会失去其可索引性。它必须是列本身。