使用PHP和MySQL将多个值与数据库中的多个列进行比较?

时间:2015-09-17 15:22:48

标签: php mysql sql

我正在创建一个PHP脚本,它接受来自用户的五个值,比如$var1$var2$var3$var4$var5。所有这些都将存储为字符串。

现在假设我的MySQL数据库中有一个主键和5列,它还存储字符串(命名为column1column2等等。)

所以问题是,考虑到我已经将PHP脚本连接到数据库并且所有其他必需的事情都已完成,那么最有效的查询或实现此任务的方法是什么:

将每个变量的值与表中的每个列进行比较。因此总的来说,在最坏的情况下,它会做5x5,即25次比较。

有这样的查询:

select * from table_name
where (var1,var2,var3,var4,var5) in (column1,column2,column3,column4,column5)

如果不是其他什么是最有效的方法来实现这一目标? 该查询必须返回$var任何匹配<{1}}的任何的行。

1 个答案:

答案 0 :(得分:0)

这应该可以解决问题:

SELECT * FROM table_name
WHERE ? IN (column1,column2,column3,column4,column5)
OR    ? IN (column1,column2,column3,column4,column5)
OR    ? IN (column1,column2,column3,column4,column5)
OR    ? IN (column1,column2,column3,column4,column5)
OR    ? IN (column1,column2,column3,column4,column5)

在您的PHP中,您可以这样做:

$sth = $pdo->prepare( "the query above" );
$sth->execute( array( $var1, $var2, $var3, $var4, $var5 ) );

(假设您使用PDO)。