0

大家好,我正在尝试做一个 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
4

1 回答 1

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”的朋友。

于 2013-11-01T14:42:53.570 回答