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 に答える