Facebook 类FQL算子
有人能告诉我为什么这样做吗:Facebook 类FQL算子,facebook,facebook-graph-api,facebook-fql,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" 当我把它放进去的时候 我得到的答复是: 你的
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"
当我把它放进去的时候
我得到的答复是:
你的陈述是不可转位的。WHERE子句必须包含可索引列。这些列在从链接的表中用*标记
然而,url实际上是可索引的
有什么想法吗?我已经搜索了stackoverflow,但没有找到答案。站点不可索引,只能选择。它旁边没有一个*符号
您需要使用url或id作为可索引列,因此基本上其中一个需要在where子句中 FQL!=SQL您不能在任何想要的列上添加WHERE。考虑到这么多同时写作的作家所要求的表演,这并不奇怪,我的意思是,世界上每十个人中就有一个人报名
第二个示例中的问题是,在一个字符串函数中用作参数的字段将失去其可索引性。它必须是列本身。输入错误。。。实际上,从一开始就应该是URL。编辑了这个问题。结果仍然是一样的。那么我的猜测是因为,上面的示例没有在索引上使用函数。因此,WHERE-uid在SELECT-uid2 FROM-friend-WHERE-uid1=me中充当索引,然后使用WHERE子句的其余部分。因此,运行SELECT url、id、type、site FROM object_url,其中url='sephora'和strpslowerurl'sephora'>=0将是一个有效的查询,但显然不会返回任何结果,因为url='sephora'不是完整的url,所以您可能需要更改查询