1

ワイルドカードを使用して Facebook ユーザー テーブルからデータを取得したいと考えています。しかし、現在の FQL はワイルドカードをサポートしていないか、何か不足していると思います。

また、LIKE に対してもエラーが発生します。

現在、次のように実行しています

SELECT uid, username,first_name,last_name FROM user WHERE first_name LIKE '%ab%' order by first_name LIMIT 0,20;

*、?、_ などを試しました。

それでも、まだ手に入れることができませんでした。

助言がありますか?

4

2 に答える 2

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

このクエリの問題は、次のエラーが発生することです。

あなたのステートメントはインデックス可能ではありません。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
于 2012-05-29T20:38:38.387 に答える
1

FQLは LIKE 演算子をサポートしていません。サポートされている strpos 関数を使用して、サポートされているテーブル インデックスに対して部分文字列検索を実行できますが、ユーザー テーブルの名前フィールドはいずれもインデックス可能ではありません。

于 2012-05-29T20:31:53.317 に答える