php 数组中 mysql 中的 IN 多列
Where IN multiple column in mysql from php array
如果在多个列中关闭,则找不到如何执行此查询
我有例子:
$post = json_decode($HTTP_RAW_POST_DATA);
$phoneNumbers = implode(",", $post->phones);
$emails = implode(",", $post->emails);
$sql = "SELECT phone_number,email,id FROM users WHERE phone_number,email IN (($phoneNumbers),($emails))";
$result = mysql_query($sql);
参数来自 post 响应,我需要将其与逻辑或进行比较。
这个例子对我不起作用,结果什么都没有。
我该怎么做。谢谢
将两个 WHERE IN
与 AND
合并:
SELECT phone_number, email, id FROM users WHERE phone_number IN ({$phoneNumbers}) AND email IN ($emails)
如果您需要匹配 phone 号码和电子邮件,则生成您的查询:
$ors = [];
foreach ($phoneNumbers as $i => $number) {
$ors[] = "(phone_number = :phoneNumber{$i} AND email = :email{$i})";
$params[":phoneNumber{$i}"] = $number;
$params[":email{$i}"] = $emails[$i];
}
$query = $pdo->prepare("SELECT phone_number, email, id FROM users WHERE ".implode(' OR ', $ors));
$query->execute($params);
SELECT
phone_number,
email,
id
FROM users
WHERE phone_number IN ($phoneNumbers)
OR email IN ($emails)
$post = json_decode($HTTP_RAW_POST_DATA);
$phoneNumbers = $post->phones;
$emails = $post->emails;
$ors = [];
foreach ($phoneNumbers as $i => $number) {
$ors[] = "(phone_number = :phoneNumber{$i})";
$params[":phoneNumber{$i}"] = $number;
}
foreach ($emails as $i => $email) {
$ors[] = "(email = :email{$i})";
$params[":email{$i}"] = $email;
}
$query = $pdo->prepare("SELECT phone_number, email, id FROM users WHERE ".implode(' OR ', $ors));
print_r($query);
$query->execute($params);
如果在多个列中关闭,则找不到如何执行此查询 我有例子:
$post = json_decode($HTTP_RAW_POST_DATA);
$phoneNumbers = implode(",", $post->phones);
$emails = implode(",", $post->emails);
$sql = "SELECT phone_number,email,id FROM users WHERE phone_number,email IN (($phoneNumbers),($emails))";
$result = mysql_query($sql);
参数来自 post 响应,我需要将其与逻辑或进行比较。 这个例子对我不起作用,结果什么都没有。 我该怎么做。谢谢
将两个 WHERE IN
与 AND
合并:
SELECT phone_number, email, id FROM users WHERE phone_number IN ({$phoneNumbers}) AND email IN ($emails)
如果您需要匹配 phone 号码和电子邮件,则生成您的查询:
$ors = [];
foreach ($phoneNumbers as $i => $number) {
$ors[] = "(phone_number = :phoneNumber{$i} AND email = :email{$i})";
$params[":phoneNumber{$i}"] = $number;
$params[":email{$i}"] = $emails[$i];
}
$query = $pdo->prepare("SELECT phone_number, email, id FROM users WHERE ".implode(' OR ', $ors));
$query->execute($params);
SELECT
phone_number,
email,
id
FROM users
WHERE phone_number IN ($phoneNumbers)
OR email IN ($emails)
$post = json_decode($HTTP_RAW_POST_DATA);
$phoneNumbers = $post->phones;
$emails = $post->emails;
$ors = [];
foreach ($phoneNumbers as $i => $number) {
$ors[] = "(phone_number = :phoneNumber{$i})";
$params[":phoneNumber{$i}"] = $number;
}
foreach ($emails as $i => $email) {
$ors[] = "(email = :email{$i})";
$params[":email{$i}"] = $email;
}
$query = $pdo->prepare("SELECT phone_number, email, id FROM users WHERE ".implode(' OR ', $ors));
print_r($query);
$query->execute($params);