mysql从数组匹配中选择多个值

时间:2015-03-19 22:58:28

标签: php mysql sql database select

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

我想从表(用户)中选择所有电话号码,其中userID与数组中的一个匹配(如果列出了电话号码)。

我想这样做而不选择数据库中的所有用户,只有那些与数组相匹配的用户和实际的电话号码,我应该在循环中这样做吗?

通常当我进行UPDATE时,我会在foreach循环中执行此操作。像这样:

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

我们也能这样做SELECT吗?

提前感谢任何建议。

3 个答案:

答案 0 :(得分:4)

如果您想选择所有这些用户,请执行以下操作:

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

答案 1 :(得分:1)

试试这个:

    <?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

答案 2 :(得分:0)

您应该执行以下操作:

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

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