2

I'm trying to retrieve all my friends expect few people.

I formed the query like this

    SELECT uid,name FROM user WHERE uid NOT IN ($x)

Retrieve every one expect those people who are in $x.

This is giving me an fatal error Uncaught Exception: 601: Parser error: unexpected 'NOT

Thanks in advance!

  • Just answered a similar question [here][1]. [1]: http://stackoverflow.com/questions/10519823/fql-not-in-equivalent-operator-like-except/13472722#13472722 – Pete Nov 20 '12 at 11:58

2 Answers2

3

You can use WHERE NOT (columnName IN (things 'not in')

Like this example :

SELECT post_id, message
 FROM stream 
 WHERE source_id IN ( SELECT page_id 
                        FROM page 
                       WHERE name='coca-cola'
                    ) 
   AND NOT (message IN ( 'probando cocacola'
                       , 'Stijn '
                       , 'Ha ha ha me crezy hu'
                       , ''
                       )
           )
LIMIT 50
yprez
  • 14,854
  • 11
  • 55
  • 70
Crivelli
  • 79
  • 6
2

"NOT IN" is not a supported feature of FQL. Ref: http://forum.developers.facebook.net/viewtopic.php?id=1420

I would suggest using something like this to get all of your friends:

SELECT uid, name FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1=me())

And then in your script when this returns ignoring those you don't want, assuming you are using php something like:

foreach( $result['data'] as $row )
{
  if( !in_array($row['uid'], $x) // do stuff
  else // ignore
}

Hope that helps.