2010-02-23 38 views
9

Trong Facebook query language(FQL), bạn có thể chỉ định một khoản IN, như:Facebook - số lượng thông số tối đa trong mệnh đề “IN”?

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

Có ai biết số lượng tối đa các thông số bạn có thể vượt qua thành IN là gì?

+0

Tôi thấy các truy vấn thất bại với một lỗi như thế này: Ngoại lệ: Đã nhận được phản hồi lỗi Facebook (mã 601): Lỗi trình phân tích cú pháp: không mong muốn ',' ở vị trí 2083.) Tôi không có thêm bất kỳ ',' vì vậy tôi nghĩ phải có một số giới hạn kích thước SELECT. Tôi sẽ không thông qua một trình duyệt nhưng tôi kinh nghiệm chính xác cùng một vấn đề thông qua trình duyệt. Điều này trỏ đến một giá trị nhỏ hơn nhiều so với 5000 dưới đây. –

Trả lời

-2

Không có số lượng thông số tối đa vì không có trong SQL IN theo như tôi biết.
http://www.sql-tutorial.net/SQL-IN.asp

không sử dụng nhiều thông số hơn bạn có giá trị cho hàm để kiểm tra vì bạn sẽ không nhận được bất kỳ kết quả nào (không biết nếu nó sẽ phát hiện lỗi như tôi chưa từng thử).

+0

Tôi tin rằng có giới hạn. – Faruz

+0

@Faruz: Tôi thực sự không biết, chỉ đoán thôi. Bất kỳ giải pháp nào vượt quá giới hạn có thể được thực hiện theo cách tốt hơn – TheChange

+0

Trong một số máy chủ SQL, giới hạn là độ dài chuỗi mà trình phân tích cú pháp SQL của họ có thể xử lý, chứ không phải số mục trong mệnh đề "IN". Tôi không chắc chắn những giới hạn độ dài truy vấn cụ thể là gì. –

3

Tôi nghĩ rằng kích thước tối đa kết quả thiết lập là 5000

+0

Tại sao? Bạn có một trích dẫn? – Oddthinking

+0

Tôi sẽ tham gia các hội đồng nhà phát triển facebook http://forum.developers.facebook.com/viewtopic.php?pid=216570 – Ceilingfish

+0

Được giảm giá. Câu hỏi không phải là khoảng * resultset * lớn như thế nào, nhưng * bao nhiêu object_ids bạn có thể chuyển vào 'IN()' * – rinogo

2

Nó có vẻ như một số lẻ (vì vậy có lẽ tôi nhớ tính, nhưng nó gần ~ 1), nhưng tôi có thể không có vẻ để truy vấn hơn 73 IN mục . Đây là truy vấn của tôi:

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') 

Điều này đang sử dụng cuộc gọi JavaSCript FB.api().

0

Không chắc chắn nếu có giới hạn không có giấy tờ hoặc có thể là vấn đề thời gian chờ của máy chủ facebook fql.

Bạn nên kiểm tra nếu có một lỗi 500 trở về từ máy chủ web FB mà có thể cho biết bạn đang đi qua một tuyên bố GET quá lâu (xem Facebook query language - long query)

tôi nhận ra get tôi quá dài nên thay vì đưa nhiều số trong câu lệnh IN, tôi đặt một truy vấn phụ ở đó tìm nạp các số đó từ FB FQL - nhưng tiếc là có vẻ như FB không thể xử lý truy vấn và trả về một 'lỗi không xác định' trong JSON mà thực sự không giúp chúng ta hiểu vấn đề.

Các vấn đề liên quan