1

在我的数据库中,我有一个表,其中包含具有自己的主 ID 键和用户 ID 键的记录。客户端,在我的 javascript 中,我有一个包含许多用户 ID 的数组。对于这个数组中的每个 id,我希望在表中搜索并选择与匹配的用户 id 相关联的记录。我不确定我是否有最好、最有效的方法。

现在,这就是我的想法:

半伪代码:

Javascript

for each element (user id) in array: 
     .get( 'script.php', userid_data, function(response){
             // ..do something with the row/record data of that specific user...
           }

因此,对于该数组中的每个用户 ID,我执行 AJAX get() 请求,将该特定用户 ID 发送到 php 脚本,该脚本在整个表中搜索与用户 ID 匹配的记录/行。

PHP/MySQL (script.php)

/*..some connection code..*/
/*.. some receive code..*/
/* query code: */

 "SELECT * FROM `recordTable` WHERE `userid` =" .var_containing_userid.";"

/*...some array to json encoding..*/
/* return attribute data */         

然而,虽然这是我能想到的唯一方法,但这对我来说似乎并不是最有效的方法。

这是因为,理论上,用户 id 的数组和记录的数量在未来都可能无限多(或只是很多)。如果此表中有数百个 ID 和不断增长的记录,我不确定这会运行多快。

有没有更好/更快的方法?在这种方法的执行变得非常缓慢之前,记录表可以增长到多大?我正在使用 PhpMyAdmin。

4

2 回答 2

2

试试这个查询:

   SELECT * FROM recordTable WHERE userid IN $user_id_array

$user_id_array 是包含 user_ids 的数组。

于 2013-06-28T05:19:36.597 回答
1

你可以试试这个

SELECT * FROM `users` WHERE userid IN ($ids)

其中$ids是逗号分隔的 ID 字符串。

于 2013-06-28T06:19:47.770 回答