有人可以告诉我为什么会这样:
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,但没有找到答案。
答案 0 :(得分:1)
网站不可转化,只能选择。它旁边没有* https://developers.facebook.com/docs/reference/fql/object_url/
你需要使用url或id作为可索引列,所以基本上其中一个需要在你的where子句中。
答案 1 :(得分:0)
FQL!= SQL您不能在任何列上使用WHERE。考虑到这么多并发作家所要求的表现,这并不奇怪,我的意思是,世界上每十个人中就有一个人已经注册。
第二个示例中的问题是,在其中一个字符串函数中用作参数的字段会失去其可索引性。它必须是列本身。