谁能告诉我,为什么这个工程: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但没有找到答案。
错字...实际上它应该从一开始就是URL。编辑了这个问题。结果仍然是一样的。 – Rees 2012-01-31 22:36:54
然后我的猜测是因为,顶部的例子是没有使用索引上的函数。所以WHERE使用IN(SELECT uid2 FROM friend WHERE uid1 = me())充当索引,然后使用where子句的其余部分。所以运行SELECT url,id,type,site FROM object_url WHERE url ='sephora'和strpos(lower(url),'sephora')> = 0将是一个有效的查询(尽管显然不会返回任何结果,因为url = 'sephora'不是一个完整的url),所以它看起来像你需要改变你的查询恐怕 – TommyBs 2012-02-01 08:28:43