我想使用通配符从 Facebook 用户表中获取数据。但是,我想当前的 FQL 不支持通配符,或者我遗漏了一些东西。
此外,它也会给 LIKE 一个错误。
目前,我正在执行它如下
SELECT uid, username,first_name,last_name FROM user WHERE first_name LIKE '%ab%' order by first_name LIMIT 0,20;
我试过 *, ?, _ 等。
尽管如此,我还是无法得到它。
有什么建议么?
我想使用通配符从 Facebook 用户表中获取数据。但是,我想当前的 FQL 不支持通配符,或者我遗漏了一些东西。
此外,它也会给 LIKE 一个错误。
目前,我正在执行它如下
SELECT uid, username,first_name,last_name FROM user WHERE first_name LIKE '%ab%' order by first_name LIMIT 0,20;
我试过 *, ?, _ 等。
尽管如此,我还是无法得到它。
有什么建议么?
有一种方法可以做类似的事情,但即使那样你也不能从 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
FQL不支持 LIKE 运算符。您可以使用支持的 strpos 函数对支持的表索引执行部分字符串搜索,但是user 表上的 name 字段都不是 indexable。