【问题标题】:mysql select multiple values from array matchmysql从数组匹配中选择多个值
【发布时间】:2015-05-23 06:29:33
【问题描述】:

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

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

我想在不从数据库中选择所有用户的情况下执行此操作,并且仅选择与数组匹配且具有实际电话号码的用户,我应该循环执行此操作吗?

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

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

我们也可以这样 SELECT 吗?

提前感谢您的任何建议。

【问题讨论】:

    标签: php mysql sql database select


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      试试这个:

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

      【讨论】:

        【解决方案3】:

        您应该执行以下操作:

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

        示例:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-12-26
          • 1970-01-01
          • 2012-10-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多