mysql select 数组中的多个值匹配

mysql select multiple values from array match

我有一个数组让我们说:Array ( [0] => 9 [1] => 7 [2] => 8 )

我想 SELECT 来自 table(用户)所有 phone 号码,其中 userID 与数组中的一个匹配(如果列出了 phone 号码) .

我想这样做而不选择数据库中的所有用户,只选择那些与数组中的用户匹配且具有实际 phone 数字的用户,我应该在循环中执行此操作吗?

通常,当我进行更新时,我会在 foreach 循环中执行它们。像这样:

foreach($userArr as $user) {
            $pid = $user;
            if(!$statement->execute()) {
                    throw new Exception($statement->error, $statement->errno);
            }
    }
$statement->close();

我们也可以SELECT那样做吗?

提前感谢您的任何建议。

您应该执行以下操作:

  1. 构建一个字符串来表示用逗号分隔的用户标识。 - 将需要循环。 id1, id2, id3
  2. 构建查询字符串以搜索它们。

示例:

SELECT * FROM `Users` WHERE id IN (id1, id2, id3)

试试这个:

    <?php

    $array = array(9, 7, 8);

    $query = "SELECT * FROM mytable WHERE id = ";

    $condition = implode(' OR id = ', $array);

    $query .= $condition;

    echo $query;
?>

输出:

SELECT * FROM mytable WHERE id = 9 OR id = 7 OR id = 8

如果您想要select所有这些用户,只需执行以下操作:

$idList = implode(',', $yourArray);
$sql = "SELECT * FROM users WHERE id IN($idList)";
// execute this $sql query