【发布时间】:2016-07-26 19:26:31
【问题描述】:
我试图弄清楚是否有一种方法可以运行单个查询,该查询接受要搜索的值数组并逐个进行直到找到结果。
基本上我想采用这种设置并将其放在一个查询中:
$arr_vals = [ array of values here ];
foreach( $arr_vals as $arr_val ){
$results = mysql_query( SELECT * FROM my_db WHERE some_field = $arr_val );
if( mysql_num_rows( $results ) ){
return $results;
}
}
因此,如果有任何方法可以不运行多个查询并仅返回当前值的结果。我宁愿不限制,也宁愿不使用 PHP 过滤结果,因为结果计数可能很高。
谢谢。
编辑!!!
我不想在这里只进行“单一”匹配。我想要第一个匹配值的结果,它可能是 1 行或 1000 行......稍后可以设置一个 LIMIT,但我不希望这成为答案的关键......显然这是一个简单的回答如果 LIMIT 是 1... 那么我就使用 IN()。
【问题讨论】:
-
WHERE field IN () -
你试过什么?人们到底怎么还在使用mysql?顺便说一句,您不会将数组连接到字符串..
-
我将添加查询...这不是我的实际代码,只是一个 sn-p...您应该明白我的意思
-
不太确定.. 无论如何,如果您尝试传递一个 id 数组,请按照@u_mulder 的建议使用
IN(),但显然在将它们连接为字符串之后。 -
并且还要说明您想要搜索的顺序,因为您想获得第一个匹配项。