大家好,我正在尝试通过名字的第一个字母搜索朋友的fql查询,我做了这个查询,但没有告诉我正确的结果。
在这种情况下,我试图用第一个字母“g”给我所有的朋友,但是CONTAINS并没有做我正在寻找的东西。还有另一种方式吗?
SELECT uid , first_name, last_name FROM user WHERE uid IN
(SELECT uid2 FROM friend WHERE uid1 = me()) AND ( CONTAINS('g')
AND strpos(lower(name),lower('g')) >=0 ) ORDER BY first_name ASC
答案 0 :(得分:1)
问题在于您使用 strpos()。您的查询将检索您姓名中包含字母“g”的所有朋友。并且,我认为在这里使用 contains()是没有意义的。
此查询适用于您的任务:
SELECT uid , first_name, last_name FROM user WHERE uid IN
(SELECT uid2 FROM friend WHERE uid1 = me()) AND
strpos(lower(first_name),lower('g')) = 0 ORDER BY first_name ASC
正如您在此处所见,我正在使用strpos(lower(first_name),lower('g')) = 0
。这将只检索那些以'g'作为名字第一个字母的朋友。