3

foreach如果三个数组中的值存在于三个mysql列中,如何多次检查(内)?

一种方法SELECT,获取整列并使用列值创建数组。然后(in_array($value_to_check[$i], $whole_mysql_column)

其他方式将是多个SELECT Column FROM Table WHERE Column = ?并且?$value_to_check[$i]

假设两种方式都使用大量资源。有没有更好的办法?

4

1 回答 1

2

为什么要一开始就提出这么多查询?为什么不创建一个使用 IN 的大型 SQL 查询,例如

$sqlValuesToCheck = '(';
foreach ($value_to_check as $value) {
    $sqlValueToCheck .= "'" . $mysqli->real_escape_string($value) . "',";
}
$sqlValueToCheck = rtrim($sqlValueToCheck, ',') . ')';

$result = $mysqli->query("SELECT `Column` FROM `Table` WHERE `Column` IN {$sqlValueToCheck}");

上面将获取数组中的所有 `Table`.`Column` 值。您提到要检查 3 列...取决于您希望如何使用结果,您可以使用 UNION 或简单地在 FROM 之前列出其他列。

于 2013-08-13T22:48:08.150 回答