我想使用通配符从Facebook用户表中获取数据。但是,我猜当前的FQL不支持通配符,或者我错过了一些东西。
此外,它也为LIKE提供了错误。
目前,我正按以下方式执行
SELECT uid,username,first_name,last_name FROM user WHERE first_name LIKE'%ab%'order by first_name LIMIT 0,20;
我试过*,?,_等。
尽管如此,我还是无法得到它。
有什么建议吗?
答案 0 :(得分: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
此查询的问题在于它生成this error:
您的陈述不可转化。 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
答案 1 :(得分:1)
FQL不支持LIKE运算符。您可以使用支持的strpos函数对支持的表索引执行部分字符串搜索,但none of the name fields on the user table are indexable。