Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 选择一组具有已知随机ID的记录_Php_Mysql_Pdo - Fatal编程技术网

Php 选择一组具有已知随机ID的记录

Php 选择一组具有已知随机ID的记录,php,mysql,pdo,Php,Mysql,Pdo,使用数组中给定的随机ID选择相当多(20-50)行的最佳方法是什么 例如,这样的代码可以工作(我猜) 我记得我以前读过一些答案,建议避免使用中的,因为这样做很慢 执行此操作的最佳技术是什么?它并不“慢”,但对于大型集合,有更好的方法来执行此操作,例如,创建一个包含中值的临时表,然后对该表进行联接。尝试了上述方法吗?就你的目的而言,它是慢的吗?没有索引,它是慢的,但是如果那是你的主键列,那么这样做完全可以。这是一本关于如何做的书。@Dagon它可以做这项工作,但我是在理论上说的。教育是关键,不,S

使用数组中给定的随机ID选择相当多(20-50)行的最佳方法是什么

例如,这样的代码可以工作(我猜)

我记得我以前读过一些答案,建议避免使用中的
,因为这样做很慢


执行此操作的最佳技术是什么?

它并不“慢”,但对于大型
集合,有更好的方法来执行此操作,例如,创建一个包含
值的临时表,然后对该表进行
联接。尝试了上述方法吗?就你的目的而言,它是慢的吗?没有索引,它是慢的,但是如果那是你的主键列,那么这样做完全可以。这是一本关于如何做的书。@Dagon它可以做这项工作,但我是在理论上说的。教育是关键,不,S.O是关于实际问题,而不是理论“关注你所面临的实际问题。包括你所尝试过的和你正试图做的细节。”
$array = [1, 53, 11, 334, 5, 96, ...]; // about 50 elements but could be more;

$sql = 'SELECT * FROM table WHERE id IN (' . substr(str_repeat('?,', count($array)), -1) . ')';

$st = $pdo->prepare($sql);
$st->execute($array);

$st->fetchAll(); // results