使用PHP和MySQL
我已经抓住的Facebook用户ID的来自Facebook的阵列。
现在我想找到自己的这阵申请相应的用户名。
显然,在我的应用程序的用户表中包含唯一的用户名和独特的fb_uid值。
我的基本的了解OOF编程使我2种方式:
1)使用一个循环,并通过fb_uid阵列运行,并找到用户名逐个。
要么
2)从用户创建一个怪物查询像SELECT DISTINCT(用户名),其中fb_uid =值1 OR fb_uid =值2 ...
那么有没有出更好的办法?
谢谢。
使用SQL的IN
操作符来代替:
select distinct(username) from users where fb_uid in (value1, value2, ...)
http://www.w3schools.com/SQl/sql_in.asp
如果您fb_uids名单是大(比如,超过100个或500转1000百个IDS),我不会用“或”一路走来:太多“或”这样会伤害DB,我想。
但每个ID做一个查询是不是真的不太妙......
那么,关于这两种观念的混合? 每做,比如说一个查询,50或100个fb_uids?
而且,而是采用大量或OR,您可以在去; 有点像这样:
select distinct(username) from users where fb_uid IN (id1, id2, id3, ...)
不知道它会在DB改变什么,但是,至少,它在寻找更好的^^
唯一的一点是,你不应该在使用中将太多ID; 所以,做一对夫妇的查询,与IDS 50和500之间的每一次可能是要走的路。
为了帮助你远一点,你可能需要看看array_slice
,以提取您的fb_uids阵列的“切片” ...
还有一个MySQL的功能:对阵
SELECT * FROM customer WHERE status = 1 AND MATCH (person, city, company, zipcode, tags) AGAINST ('".$searchstring."' IN BOOLEAN MODE)
你inputstring会在不同的列进行搜索。
也许你可以重新考虑你的SQL语句,如果你不知道这个功能。