Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.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
如何一次获取所有选定ID?PHP/MySQL问题_Php_Sql_Mysql - Fatal编程技术网

如何一次获取所有选定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,没错,这远不是最优的,我宁愿在任何情况下使用循环,但无论如何都是可能的。:)谢谢。我想我会继续使用循环解决方案:)