在我的数据库中,我有一个表,其中包含具有自己的主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/MMySQL(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。
尝试此查询:
SELECT * FROM recordTable WHERE userid IN $user_id_array
$user_id_array是包含user_id的数组。
你可以试试这个
SELECT * FROM `users` WHERE userid IN ($ids)
其中CCD_ 1是以逗号分隔的ID字符串。