foreach
如果三个数组中的值存在于三个mysql列中,如何多次检查(内)?
一种方法SELECT
,获取整列并使用列值创建数组。然后(in_array($value_to_check[$i], $whole_mysql_column)
。
其他方式将是多个SELECT Column FROM Table WHERE Column = ?
并且?
是$value_to_check[$i]
假设两种方式都使用大量资源。有没有更好的办法?
foreach
如果三个数组中的值存在于三个mysql列中,如何多次检查(内)?
一种方法SELECT
,获取整列并使用列值创建数组。然后(in_array($value_to_check[$i], $whole_mysql_column)
。
其他方式将是多个SELECT Column FROM Table WHERE Column = ?
并且?
是$value_to_check[$i]
假设两种方式都使用大量资源。有没有更好的办法?
为什么要一开始就提出这么多查询?为什么不创建一个使用 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 之前列出其他列。