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那样做吗?
提前感谢您的任何建议。
您应该执行以下操作:
- 构建一个字符串来表示用逗号分隔的用户标识。 - 将需要循环。 即 id1, id2, id3
- 构建查询字符串以搜索它们。
示例:
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
我有一个数组让我们说: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那样做吗?
提前感谢您的任何建议。
您应该执行以下操作:
- 构建一个字符串来表示用逗号分隔的用户标识。 - 将需要循环。 即 id1, id2, id3
- 构建查询字符串以搜索它们。
示例:
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