1

我想使用通配符从 Facebook 用户表中获取数据。但是,我想当前的 FQL 不支持通配符,或者我遗漏了一些东西。

此外,它也会给 LIKE 一个错误。

目前,我正在执行它如下

SELECT uid, username,first_name,last_name FROM user WHERE first_name LIKE '%ab%' order by first_name LIMIT 0,20;

我试过 *, ?, _ 等。

尽管如此,我还是无法得到它。

有什么建议么?

4

2 回答 2

2

有一种方法可以做类似的事情,但即使那样你也不能从 api 提出这样的问题。

这是您的查询的“工作”版本:

SELECT uid, username, first_name, last_name
FROM user
WHERE strpos(lower(first_name), 'ab') >= 0
ORDER BY first_name
LIMIT 0,20

这个查询的问题是它产生了这个错误

您的语句不可索引。WHERE 子句必须包含一个可索引的列。这些列在从http://developers.facebook.com/docs/reference/fql链接的表格中标有 *

您基本上没有办法询问所有用户,仅基于特定用户,例如这有效:

SELECT uid, username, first_name, last_name
FROM user
WHERE strpos(lower(first_name), 'ab') >= 0 AND uid IN ("user_id_1", "user_id_2", ...,"user_id_n")
ORDER BY first_name
LIMIT 0,20
于 2012-05-29T20:38:38.387 回答
1

FQL不支持 LIKE 运算符。您可以使用支持的 strpos 函数对支持的表索引执行部分字符串搜索,但是user 表上的 name 字段都不是 indexable

于 2012-05-29T20:31:53.317 回答