如何一次获取所有选定ID?PHP/MySQL问题
我有一个名为如何一次获取所有选定ID?PHP/MySQL问题,php,sql,mysql,Php,Sql,Mysql,我有一个名为Files的MySQL表,它有file\u id列和file\u type列(以及与问题无关的其他列) 我想获取所有图片文件的所有文件ids(即文件
Files
的MySQL表,它有file\u id
列和file\u type
列(以及与问题无关的其他列)
我想获取所有图片文件的所有文件id
s(即文件
)
我这样做查询:
$pictures_query = mysql_query("SELECT file_id FROM Files WHERE file_type='picture')
现在的问题是:如何将所有图片文件id
放入一个数组
我想这样做:
$pictures_ids = array();
while ($row = mysql_fetch_row($pictures_query)) {
$pictures_ids[] = $row[0];
}
循环是否真的有必要,或者有更好的方法来实现这一点 这个循环实际上是必要的。(更新:除非您使用如塔图所示的
组_CONCAT
)
PDO有一个方法,但mysql函数没有。循环是必要的,只要你不使用任何其他功能,比如
Doctrine
通过水合作用或MYSQLI
使用迭代器,比如next\u result()
函数或其fetch\u all函数()
可以与一起使用以避免循环:
$pictures_query = mysql_query("SELECT GROUP_CONCAT(file_id) FROM Files WHERE file_type='picture'");
$file_ids = explode(',', mysql_result($pictures_query, 0));
嘿,很好+1.由于有数以百万计的记录,采用这种方式将比通过循环消耗更多的资源。不过,在大多数情况下,这并不重要。@Pekka,没错,这远不是最优的,我宁愿在任何情况下使用循环,但无论如何都是可能的。:)谢谢。我想我会继续使用循环解决方案:)