php - 通过更改为单个查询而不是将其放入循环中进行优化

标签 php mysql

我在数据库中有一张表。它包含 3 列:ID、名称、类型。我的 PHP 脚本中有一个数组,其中包含其中一些 ID(不按任何顺序,可能重复)。我想从表中回显那些我在数组中有 ID 的项目。我尝试使用 for 循环执行此操作:

$items = array(1, 8, 5, 3, 2, 1,  5, 5);
for ($i=0; $i < count($items); $i++) {
    $query = mysqli_query($connect, "SELECT * FROM weapons WHERE id='$items[$i]'");
    $row = $query->fetch_assoc();

    echo $row['name'] . ', ' . $row['type'];
}

我认为在循环中使用调用查询不是好的做法,因为如果循环太大,可能会减慢处理速度。如果不将查询置于循环中,我怎样才能获得相同的结果?

最佳答案

为此使用IN关键字

$query = mysqli_query($connect, "SELECT * FROM weapons WHERE id IN (1, 8, 5, 3, 2,5) ");

关于php - 通过更改为单个查询而不是将其放入循环中进行优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39672748/

相关文章:

php - 从 url laravel 中删除部分段

php - 匹配单词的任何组合

php - 在 AMPPS (OSX) 中为 PHP 设置 "$PATH"变量

mysql - 如何透视 MySQL 实体-属性-值模式

mysql - 外键和集群

java - 在发布到 phpmyadmin 时询问 asynctask

mysql - 使用带有 GROUP BY 和 INNER JOIN 的 MIN() 函数删除重复行

php - 如何处理混合使用 HTML 和标点符号的用户输入?

javascript - 如何从 Facebook 页面名称获取 Facebook 页面 ID

php - 在 PDO 中实现 LIKE 查询