2010-02-23 3 views
9

In Facebook query language(FQL) können Sie eine IN Klausel angeben, wie:Facebook - maximale Anzahl von Parametern in "IN" -Klausel?

SELECT uid1, uid2 FROM friend WHERE uid1 IN (1000, 1001, 1002) 

Wer weiß, was die maximale Anzahl von Parametern ist man in IN passieren kann?

+0

Ich sehe Abfragen mit einem Fehler wie folgt fehlschlagen: Ausnahme: Empfangene Facebook-Fehlerantwort (Code 601): Parser Fehler: unerwartet ',' bei Position 2083.) Ich habe kein extra ',' so denke ich Die Größe der SELECTs muss begrenzt sein. Ich gehe nicht über einen Browser, aber ich erlebe genau dasselbe Problem über den Browser. Dies zeigt auf einen viel kleineren Wert als die 5000 darunter. –

Antwort

-2

Es sollte nicht eine maximale Anzahl von Parametern geben, da es in SQL IN nicht existiert, soweit ich weiß.
http://www.sql-tutorial.net/SQL-IN.asp

nicht nur mehr Parameter als Sie Werte für die Funktion haben, zu überprüfen, weil Sie keine Ergebnisse erhalten wird (weiß nicht, ob es einen Fehler geben weg, als ich versuchte nie).

+0

Ich glaube, es gibt eine Grenze. – Faruz

+0

@Faruz: Ich weiß es nicht wirklich, nur erraten. Jede Lösung, die das Limit überschreitet, sollte besser ausgeführt werden. – TheChange

+0

In einigen SQL-Servern ist das Limit die Länge der Strings, die ihr SQL-Parser verarbeiten kann, nicht die Anzahl der Elemente in der "IN" -Klausel. Ich bin mir nicht sicher, was die spezifischen Abfrage-Längengrenzen sind. –

3

denke ich, die maximale Ergebnismenge Größe 5000

+0

Warum? Hast du ein Zitat? – Oddthinking

+0

Ich gehe von den Facebook-Entwickler-Boards http://forum.velopers.facebook.com/viewtopic.php?pid=216570 – Ceilingfish

+0

Downvoted. Die Frage war nicht, wie groß das * resultset * sein kann, sondern * wie viele object_ids können Sie in 'IN()' * übergeben – rinogo

2

ist es wie eine ungerade Zahl zu sein scheint (so vielleicht vermisse ich gezählt, aber es ist nah ~ 1), aber ich kann nicht mehr als 73 IN Artikel abzufragen scheinen . Dies ist meine Frage:

SELECT object_id, metric, value 
FROM insights 
WHERE object_id IN (~73 PAGE IDS HERE~) 
AND metric='page_fans' 
AND end_time=end_time_date('2011-06-04') 
AND period=period('lifetime') 

Dies wird der JavaScript-FB.api() Anruf mit.

0

Nicht sicher, ob es ein undokumentiertes Limit gibt, oder es könnte ein Problem mit dem Timeout von facebook fql Server sein.

Sie überprüfen sollten, ob es ein Fehler ist 500 von FB Web-Server zurückgegeben, die Ihnen eine zu lange GET-Anweisung sind vorbei (Facebook query language - long query sehen)

hinweisen erkannte ich meine get zu lange so, anstatt viele Zahlen des Setzens war In der IN-Anweisung gebe ich eine Unterabfrage ein, die diese Zahlen vom FB FQL abruft - aber leider sieht es so aus, als könnte FB die Abfrage nicht behandeln und hat einen 'unbekannten Fehler' in JSON zurückgegeben, der uns wirklich nicht hilft das Problem.